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

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

创建RAM 角色

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

  • AliyunCADTFullAccess

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

  • ReadOnlyAccess

  • AliyunConfigFullAccess

角色创建步骤:

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

image

2、选择阿里云服务

image.png

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

image.png

4、点击为权限授权。

image.png

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

image.png

下载标准函数接口代码

通过命令行下载代码。 下载后在目录 cadt-oa-integration 中会有一个cadt-oa-fc.py的函数代码。

git clone https://best-practice:Abcd123456@codeup.aliyun.com/best-practice/bp/cadt-oa-integration.git

image

创建函数并部署

1、登录函数计算3.0控制台。

https://fcnext.console.aliyun.com/cn-shanghai/functions

2、点击创建函数

image.png

3、按下图所示配置函数,选择事件函数,输入函数名称“cadt-oa-integration”, 运行环境选择python 3.10, 代码上传方式选择一个示例代码,Hello,world示例。

image

4、高级配置

  • 规格,按默认即可。

  • 执行超时时间:建议7200.

  • 请求处理程序:按默认

  • 时区:选择北京时间

  • 函数角色:选择第一节创建的角色。

  • 允许访问VPC。建议开启,若OA处于内网环境,可以通过VPC进行访问。

  • 允许访问公网:是。

  • 日志功能:建议开启。

image

5、环境变量设置后,点击创建。

  • allowed_domains: 设置一个或多个跨域请求的域名,以逗号分隔。

  • ip_whitelist: 设置一个或多个后端API调用的IP白名单,以逗号分隔。

  • token:安全验证吗,通过匹配url中的 token=xxxxx 来校验请求。

  • callback_url: 回调地址。 当部署和升降配结束后,若配置了此变量,接口将部署完成的数据以post方式调用这个接口

image.png

6、替换示例代码

用上述下载的代码替换下图红色方框内的实例代码。

image.png

7、替换后打开一个Terminal

image.png

8、安装相应依赖

在上述打开的Terminal中执行以下安装命令。

pip3 install alibabacloud_bpstudio20210931  numpy ipaddress requests  -t . 
pip3 install alibabacloud_resourcecenter20221201 -t . 
pip3 install alibabacloud_bssopenapi20171214 -t .

image.png

9、依赖安装完成后,点击部署代码。

image.png

10、创建触发器。

在配置 -> 触发器中,点击创建触发器。

image.png

11、配置HTTP类型的触发器。

类型:HTTP触发器

名称:自行定义

请求方法:POST,OPTIONS,HEAD

禁止公网访问URL:否

认证方式:无需认证。(本方案提供的函数内部做了IP/域名/token三种认证方式)

image.png

12、创建完成后,即可得到以下图所示的访问地址。记录改地址后续可以使用。

image.png