函数工作流自动更新ECS证书

应用场景

本文下表示例信息所示为例,介绍如何通过使用函数工作流自动获取并更新ECS服务器证书。

Web服务器类型

Nginx

代码编辑语言

Python 3.9

代码编辑语言

Nginx

Python 3.9

约束与限制

已开通弹性云服务器(Elastic Cloud Server,ECS),且在ECS中配置了SSL证书。

SSL证书为云证书管理服务中购买且续费的证书。

步骤一:创建委托

使用函数工作流更新ECS服务器证书需要将SCM FullAccess、IAM ReadOnlyAccess权限授权给函数工作流服务。

1.登录管理控制台

2.单击页面左上方的,选择“管理与监管 > 统一身份认证服务”,进入统一身份认证服务界面。

3.在左侧导航栏选择“委托”,并在委托界面右上角单击“创建委托”,进入创建委托界面。

4.在创建委托界面,按下表创建云服务委托参数说明所示设置委托信息。

参数

配置说明

委托名称


自定义委托名称

委托类型

选择“云服务”

云服务

选择“FunctionGraph”

持续时间

选择“永久”

描述

可填选,自定义需要的信息

委托名称

配置说明


自定义委托名称

委托类型

配置说明

选择“云服务”

云服务

配置说明

选择“FunctionGraph”

持续时间

配置说明

选择“永久”

描述

配置说明

可填选,自定义需要的信息

5.单击“下一步”,进入委托授权界面。

6.选择并勾选需要授权函数工作流的“SCM FullAccess”、“IAM ReadOnlyAccess”权限。

7.单击“下一步”,设置权限的作用范围。

8.单击“确定”,委托创建成功。

步骤二:使用空白模板创建函数

1.登录管理控制台

2.单击页面左上方的,选择“计算 > 函数工作流”,进入函数工作流界面。

3.单击函数工作流界面右上方的“创建函数”,进入创建函数界面。

4.按下表创建空白事件函数参数配置所示信息创建空白函数。

参数

配置说明

函数类型

选择“事件类型”

区域

选择需要部署代码的区域

函数名称

自定义函数名称

委托名称

选择“步骤一:创建委托”创建的委托名称

企业项目

如果您已开通企业项目,选择需要添加函数的企业项目即可。

如果您未开通企业项目,将无法看到企业项目的选项。若需开通请参见如何开通企业项目,无需开通企业项目请跳过此项。

运行时

选择函数编写语言,此处示例选择“Python 3.9”

函数类型

配置说明

选择“事件类型”

区域

配置说明

选择需要部署代码的区域

函数名称

配置说明

自定义函数名称

委托名称

配置说明

选择“步骤一:创建委托”创建的委托名称

企业项目

配置说明

如果您已开通企业项目,选择需要添加函数的企业项目即可。

如果您未开通企业项目,将无法看到企业项目的选项。若需开通请参见如何开通企业项目,无需开通企业项目请跳过此项。

运行时

配置说明

选择函数编写语言,此处示例选择“Python 3.9”

5.单击“创建函数”,跳转至函数界面,创建空白函数成功

步骤三:创建定时触发器

创建定时触发器,在固定时间间隔触发函数。

1.在函数界面,选择“设置 > 触发器”,进入触发器页签。

2.单击“创建触发器”,按下表配置定时触发器所示信息创建定时触发器。

参数

配置说明

触发器类型

选择“定时触发器(TIMER)”

定时器名称

自定义定时器名称

触发规则

设置为“固定频率”,具体频率请根据您的实际情况配置

是否开启

附加信息

可选填,自定义需要的信息

触发器类型

配置说明

选择“定时触发器(TIMER)”

定时器名称

配置说明

自定义定时器名称

触发规则

配置说明

设置为“固定频率”,具体频率请根据您的实际情况配置

是否开启

配置说明

附加信息

配置说明

可选填,自定义需要的信息

3.单击“确定”,定时触发器创建成功。

步骤四:制作并配置函数依赖包

部署证书至ECS的函数代码需要依赖paramiko依赖包,您需要为函数制作并配置paramiko依赖包。

本节以Python 3.9为例介绍制作和配置依赖包的方法。其他代码编辑语言制作依赖包的方法请参见如何制作依赖包

配置依赖包

5.登录管理控制台

6.单击页面左上方的,选择“计算 > 函数工作流”,进入函数工作流界面。

7.在左侧导航栏选择“函数 > 依赖包管理”,进入依赖包管理界面。

8.单击的“创建依赖包”,弹出“创建依赖包”对话框,按下表配置依赖包所示设置依赖包信息。

参数

说明

依赖包名称

自定义的依赖包名称,用于识别不同的依赖包

代码上传方式

选择“上传ZIP文件”

文件上传

添加依赖包ZIP文件

运行时语言

选择函数编写语言,此处示例选择“Python 3.9”

描述

对于依赖包的描述信息,可以不填

依赖包名称

说明

自定义的依赖包名称,用于识别不同的依赖包

代码上传方式

说明

选择“上传ZIP文件”

文件上传

说明

添加依赖包ZIP文件

运行时语言

说明

选择函数编写语言,此处示例选择“Python 3.9”

描述

说明

对于依赖包的描述信息,可以不填

9.单击“确定”,完成依赖包创建。

10.在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。

11.单击函数名称,进入函数详情界面。

12.在代码页签,单击“代码依赖包”所在行的“添加依赖包”,弹出“选择依赖包”对话框。

13.选择8创建的私有依赖包,单击“确定”,函数依赖包配置完成。

步骤五:在函数中配置代码源

在函数中配置代码源,本节以在线编辑的方式为例。更多创建代码源的方式请参见创建程序包

1.在函数工作流界面左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。

2.单击函数名称,进入函数详情界面。

3.选择“设置 > 环境变量”,进入环境变量页签。

4.单击“添加环境变量”,添加“endpoint”、“region”两个环境变量。

环境变量1:

键:endpoint

值:scm.cn-north-4.myhuaweicloud.com

环境变量2:

键:region

值:cn-north-4

5.单击“保存”,选择代码页签。

6.在代码页签,将提供的两段代码整合添加到一个代码源文件。

7.单击“测试”,测试函数,确认函数能正常执行。

测试函数的详细操作请参见在线调试

8.代码源添加并测试完成后,函数会根据定时触发器设置的触发规则运行,如有续费证书签发会被自动获取并更新至ECS。

9.您可以在函数详情页选择“监控 > 指标”,进入监控指标页签,查看函数运行情况。

可以查看到“调用次数”、“运行时间”、“错误次数”和“被拒绝次数”等指标。有关监控更详细的说明请参见函数监控

为Python制作依赖包

1.打包环境中的Python版本要和对应函数的运行时版本相同。如Python 3.9建议使用3.9.0及以上版本,Python2.7建议使用2.7.12及以上版本,Python3.6建议使用3.6.3以上版本。

2.执行如下命令,为Python 3.9安装paramiko依赖包,并指定此依赖包的安装路径为本地的/tmp/paramiko下。

pip install paramiko --root /tmp/paramiko

3.执行如下命令切换到/tmp/paramiko下。

cd /tmp/paramiko/

4.进入子目录直到site-packages路径下(一般路径为usr/lib64/python3.9/site-packages/),并执行如下命令。

zip -rq paramiko.zip *

所生成的包即为最终需要的依赖包。

其他应用场景

  • *使用函数压缩图片*

    将图片上传到特定的OBS桶中

    将用户上传的每个图像的尺寸进行压缩

    将处理完后的图像上传到另一个指定的OBS桶

    将图片上传到特定的OBS桶中

    将用户上传的每个图像的尺寸进行压缩

    将处理完后的图像上传到另一个指定的OBS桶

  • *使用函数为图片打水印*

    将图片上传到特定的OBS桶中

    将用户上传的每个图片打水印

    将处理完后的图像上传到另一个指定的OBS桶

    将图片上传到特定的OBS桶中

    将用户上传的每个图片打水印

    将处理完后的图像上传到另一个指定的OBS桶中

  • *使用函数处理DIS数据*

    将图片上传到特定的OBS桶中

    将用户上传的每个图像的尺寸进行压缩

    将处理完后的图像上传到另一个指定的OBS桶

    将图片上传到特定的OBS桶中

    将用户上传的每个图像的尺寸进行压缩

    将处理完后的图像上传到另一个指定的OBS桶

  • *函数+LTS日志实时分析*

    通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转换。

    通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转换。

  • *函数+CTS登录/登出安全分析*

    通过CTS云审计服务,完成对公有云账户对各个云服务资源操作动作和结果的实时记录。

    通过CTS云审计服务,完成对公有云账户对各个云服务资源操作动作和结果的实时记录。

  • *定时开关机华为公有云虚拟机*

    需要特定时间打开或者关闭华为公有云虚拟机时,使用函数服务调用华为云ECS接口,实现定时开关虚拟机。

    需要特定时间打开或者关闭华为公有云虚拟机时,使用函数服务调用华为云ECS接口,实现定时开关虚拟机。

函数工作流 FunctionGraph 教程视频

函数工作流

03:15

函数工作流

02:10

函数工作流

03:10

函数工作流

02:33

函数工作流

02:42

函数工作流

02:18

函数工作流

02:42

函数工作流