本方案提供一个CADT API集成的代码样例,并以函数计算的形式进行部署。
创建RAM 角色
本文提供的一个函数计算代码包,是以函数计算实例绑定的RAM角色来获取到对应资源的操作权限,故需要提前申请创建一个RAM Role,包含以下权限。
各种阿里云产品的操作管理权限。(ECS,RDS,Redis, OSS,Kafka,NAS,ES,PolarDB, ClickHouse)
ReadOnlyAccess
AliyunConfigFullAccess
角色创建步骤:
1、登录RAM控制台,进入 身份管理 -> 角色
2、选择阿里云服务
3、创建一个普通服务角色,CADT-OA-FC,选择受信服务为“函数计算”
4、点击为权限授权。
5、本文示例授以下述两个权限,具体根据实际情况授权。
下载标准函数接口代码
通过命令行下载代码。 下载后在目录 cadt-oa-integration 中会有一个cadt-oa-fc.py的函数代码。
git clone https://best-practice:Abcd123456@codeup.aliyun.com/best-practice/bp/cadt-oa-integration.git
创建函数并部署
1、登录函数计算3.0控制台。
https://fcnext.console.aliyun.com/cn-shanghai/functions
2、点击创建函数
3、按下图所示配置函数,选择事件函数,输入函数名称“cadt-oa-integration”, 运行环境选择python 3.10, 代码上传方式选择一个示例代码,Hello,world示例。
4、高级配置
规格,按默认即可。
执行超时时间:建议7200.
请求处理程序:按默认
时区:选择北京时间
函数角色:选择第一节创建的角色。
允许访问VPC。建议开启,若OA处于内网环境,可以通过VPC进行访问。
允许访问公网:是。
日志功能:建议开启。
5、环境变量设置后,点击创建。
allowed_domains: 设置一个或多个跨域请求的域名,以逗号分隔。
ip_whitelist: 设置一个或多个后端API调用的IP白名单,以逗号分隔。
token:安全验证吗,通过匹配url中的 token=xxxxx 来校验请求。
callback_url: 回调地址。 当部署和升降配结束后,若配置了此变量,接口将部署完成的数据以post方式调用这个接口
6、替换示例代码
用上述下载的代码替换下图红色方框内的实例代码。
7、替换后打开一个Terminal
8、安装相应依赖
在上述打开的Terminal中执行以下安装命令。
pip3 install alibabacloud_bpstudio20210931 numpy ipaddress requests -t .
pip3 install alibabacloud_resourcecenter20221201 -t .
pip3 install alibabacloud_bssopenapi20171214 -t .
9、依赖安装完成后,点击部署代码。
10、创建触发器。
在配置 -> 触发器中,点击创建触发器。
11、配置HTTP类型的触发器。
类型:HTTP触发器
名称:自行定义
请求方法:POST,OPTIONS,HEAD
禁止公网访问URL:否
认证方式:无需认证。(本方案提供的函数内部做了IP/域名/token三种认证方式)
12、创建完成后,即可得到以下图所示的访问地址。记录改地址后续可以使用。