步骤1: 基于函数计算部署CADT API接口

更新时间:
复制为 MD 格式

本方案提供一个CADT API集成的代码样例,并以函数计算的形式进行部署。

创建RAM 角色

本文提供的一个函数计算代码包,是以函数计算实例绑定的RAM角色来获取到对应资源的操作权限,故需要提前申请创建一个RAM Role,包含以下权限。

  • AliyunCADTFullAccess

  • 各种阿里云产品的操作管理权限。(ECS,RDS,Redis, OSS,Kafka,NAS,ES,PolarDB, ClickHouse)

  • ReadOnlyAccess

  • AliyunConfigFullAccess

角色创建步骤:

1、登录RAM控制台,进入 身份管理 -> 角色

2、选择阿里云服务

3、创建一个普通服务角色,CADT-OA-FC,选择受信服务为“函数计算”

4、点击为权限授权。

5、本文示例授以下述两个权限,具体根据实际情况授权。

授权结果显示已成功添加AliyunFCFullAccessAliyunROSFullAccess两条系统策略。

下载标准函数接口代码

通过命令行下载代码。 下载后在目录 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、替换示例代码

用上述下载的代码替换函数中的示例代码。

在代码编辑器中打开index.py文件,选中编辑区域中的全部示例代码内容进行替换。

7、替换后打开一个Terminal

在函数计算代码编辑器中,通过顶部菜单打开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、创建完成后,即可得到HTTP触发器的访问地址。记录改地址后续可以使用。

在函数详情页面的触发器管理中,查看已创建的HTTP触发器,复制公网访问地址用于后续API调用。