函数工作流自动更新ECS证书
应用场景
本文下表示例信息所示为例,介绍如何通过使用函数工作流自动获取并更新ECS服务器证书。
Web服务器类型
Nginx
代码编辑语言
Python 3.9
约束与限制
已开通弹性云服务器(Elastic Cloud Server,ECS),且在ECS中配置了SSL证书。
SSL证书为云证书管理服务中购买且续费的证书。
步骤一:创建委托
使用函数工作流更新ECS服务器证书需要将SCM FullAccess、IAM ReadOnlyAccess权限授权给函数工作流服务。
1.登录管理控制台。
2.单击页面左上方的,选择“管理与监管 > 统一身份认证服务”,进入统一身份认证服务界面。
3.在左侧导航栏选择“委托”,并在委托界面右上角单击“创建委托”,进入创建委托界面。
4.在创建委托界面,按下表创建云服务委托参数说明所示设置委托信息。
5.单击“下一步”,进入委托授权界面。
6.选择并勾选需要授权函数工作流的“SCM FullAccess”、“IAM ReadOnlyAccess”权限。
7.单击“下一步”,设置权限的作用范围。
8.单击“确定”,委托创建成功。
步骤二:使用空白模板创建函数
1.登录管理控制台。
2.单击页面左上方的,选择“计算 > 函数工作流”,进入函数工作流界面。
3.单击函数工作流界面右上方的“创建函数”,进入创建函数界面。
4.按下表创建空白事件函数参数配置所示信息创建空白函数。
5.单击“创建函数”,跳转至函数界面,创建空白函数成功
步骤三:创建定时触发器
创建定时触发器,在固定时间间隔触发函数。
1.在函数界面,选择“设置 > 触发器”,进入触发器页签。
2.单击“创建触发器”,按下表配置定时触发器所示信息创建定时触发器。
3.单击“确定”,定时触发器创建成功。
步骤四:制作并配置函数依赖包
部署证书至ECS的函数代码需要依赖paramiko依赖包,您需要为函数制作并配置paramiko依赖包。
本节以Python 3.9为例介绍制作和配置依赖包的方法。其他代码编辑语言制作依赖包的方法请参见如何制作依赖包。
配置依赖包
5.登录管理控制台。
6.单击页面左上方的,选择“计算 > 函数工作流”,进入函数工作流界面。
7.在左侧导航栏选择“函数 > 依赖包管理”,进入依赖包管理界面。
8.单击的“创建依赖包”,弹出“创建依赖包”对话框,按下表配置依赖包所示设置依赖包信息。
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下。
3.执行如下命令切换到/tmp/paramiko下。
4.进入子目录直到site-packages路径下(一般路径为usr/lib64/python3.9/site-packages/),并执行如下命令。
所生成的包即为最终需要的依赖包。
其他应用场景
-
将图片上传到特定的OBS桶中
将用户上传的每个图像的尺寸进行压缩
将处理完后的图像上传到另一个指定的OBS桶
将图片上传到特定的OBS桶中
将用户上传的每个图像的尺寸进行压缩
将处理完后的图像上传到另一个指定的OBS桶
-
将图片上传到特定的OBS桶中
将用户上传的每个图片打水印
将处理完后的图像上传到另一个指定的OBS桶
将图片上传到特定的OBS桶中
将用户上传的每个图片打水印
将处理完后的图像上传到另一个指定的OBS桶中
-
将图片上传到特定的OBS桶中
将用户上传的每个图像的尺寸进行压缩
将处理完后的图像上传到另一个指定的OBS桶
将图片上传到特定的OBS桶中
将用户上传的每个图像的尺寸进行压缩
将处理完后的图像上传到另一个指定的OBS桶
函数工作流 FunctionGraph 教程视频
函数工作流
函数工作流
函数工作流
函数工作流
函数工作流
函数工作流
函数工作流