开源软件名称:fc-alibaba-component
开源软件地址:https://gitee.com/serverless-devs-awesome/fc-alibaba
开源软件介绍:
前言通过本组件,您可以简单快速的将阿里云函数计算项目部署到线上。 使用最简使用方法模版拉取: s init python3-http -p alibaba 其中Yaml的默认配置为: MyFunctionDemo: Component: fc Provider: alibaba Properties: Region: cn-hangzhou Service: Name: ServerlessToolProject Description: 欢迎使用ServerlessTool Function: Name: serverless_demo_python3_http Description: 这是一个Python3-HTTP的测试案例 CodeUri: ./ Handler: index.handler MemorySize: 128 Runtime: python3 Timeout: 5 Triggers: - Name: TriggerNameHttp Type: HTTP Parameters: AuthType: ANONYMOUS Methods: - GET - POST - PUT Domains: - Domain: AUTO 系统默认bootstrap内容: 测试模板对应关系不同语言的Event函数模板:nodejs6 ,nodejs8 ,nodejs10 ,nodejs12 ,python27 ,python3 ,php72 不同语言的Http函数模板:nodejs6-http ,nodejs8-http ,nodejs10-http ,nodejs12-http ,python27-http ,python3-http ,php72-http
完整Yaml示例MyFunction: Component: fc Provider: alibaba Access: release Properties: Region: cn-huhehaote Service: Name: 服务名 Description: 服务描述 InternetAccess: 访问公网# Log: Auto Log: LogStore: loghub中的logstore名称 Project: loghub中的project名称# Role: <角色名称> 或 <角色ARN> Role: # 授予函数计算所需权限的RAM role Name: <角色名称> Policies: - AliyunECSNetworkInterfaceManagementAccess - AliyunFCFullAccess# Vpc: Auto Vpc: SecurityGroupId: 安全组 VSwitchIds: - 一个或多个VSwitch ID VpcId: VPC ID# Nas: Auto# Nas:# Type: Auto# FcDir: /home/aaaaaa# LocalDir: ./ssss# LocalDir: # - ./ssss Nas: UserId: userID GroupId: groupID # s nas sync MountPoints: - Alias: demo # 选填 NasAddr: 3e3544a894-qjf60.cn-shanghai.nas.aliyuncs.com NasDir: /demo FcDir: /home/ssss LocalDir: ./ssss - NasAddr: 3e3544a894-qjf60.cn-shanghai.nas.aliyuncs.com NasDir: /demo FcDir: /home/aaaaaa LocalDir: - path Tags: - Key: 标签名 Value: 标签值 - Key: 标签名 Value: 标签值 Function: 函数名 Name: 函数名 Description: 函数描述 # CodeUri: 本地路径 # CodeUri: # Bucket: function code包的bucket name # Object: code zip包的object name CodeUri: Bucket: function code包的bucket name Src: 本地路径 Excludes: - path1 - path2 Includes: - path1 - path2 CAPort: 8080 #指定端口 CustomContainer: Dockerfile: ./dockerfile CrAccount: User: xx #如指定则会自动进行登录 Password: xx #如指定则会自动进行登录 Image: 'registry.cn-hangzhou.aliyuncs.com/lvwantest/nahai-repo:latest' # 仓库地址 Command: '[ "node"]' Args: '["server.js"]' Handler: function执行的入口,具体格式和语言相关 MemorySize: function的内存规格 InstanceConcurrency: 单实例多并发 Runtime: function的运行环境 Environment: - Key: Environmentkey Value: EnvironmentValue Timeout: function运行的超时时间 Initializer: Handler: 初始化 function 执行的入口,具体格式和语言相关 Timeout: 初始化 function 运行的超时时间 Triggers: - Name: OSSTrigger Type: OSS # trigger type Parameters: Bucket: coco-superme # oss bucket name Events: - oss:ObjectCreated:* - oss:ObjectRemoved:DeleteObject Filter: Prefix: source/ Suffix: .png Qualifier: Prod # 版本(可选) - Name: TriggerNameTimer Type: Timer Parameters: CronExpression: '0 0 8 * * *' Enable: true Payload: 'awesome-fc-event-nodejs10' Qualifier: Prod # 版本(可选) - Name: TriggerNameHttp Type: HTTP # trigger type Parameters: AuthType: ANONYMOUS InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色 Methods: - GET - POST - PUT Domains: - Domain: anycodes.cn Protocol: - HTTP - HTTPS CertConfig: CertName: 'CertName' PrivateKey: './certificates/privateKey.pem' Certificate: './certificates/certificate.pem' Routes: - Path: '/a' Qualifier: Prod # 版本(可选) - Path: '/a' Qualifier: Prod # 版本(可选) - Name: TriggerNameLog Type: Log Parameters: SourceConfig: LogStore: logstore1 JobConfig: MaxRetryTime: 1 TriggerInterval: 30 LogConfig: Project: testlog LogStore: logstore2 Enable: true FunctionParameter: 日志服务将该配置内容作为函数 event, 当事件触发时 InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色 Qualifier: Prod # 版本(可选) - Name: TriggerNameRDS Type: RDS # trigger type Parameters: InstanceId: rm-12345799xyz SubscriptionObjects: - db1.table1 Retry: 2 Concurrency: 1 EventFormat: json InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色 Qualifier: Prod # 版本(可选) - Name: TriggerNameMNS Type: MNSTopic # trigger type Parameters: TopicName: test-topic Region: cn-shanghai NotifyContentFormat: JSON NotifyStrategy: BACKOFF_RETRY FilterTag: 描述了该订阅中消息过滤的标签 InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色 Qualifier: Prod # 版本(可选) - Name: TriggerNameTableStore Type: TableStore # trigger type Parameters: InstanceName: test-inst TableName: test-tbl InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色 Qualifier: Prod # 版本(可选) - Name: TriggerNameCDN Type: CDN # trigger type Parameters: EventName: LogFileCreated EventVersion: '1.0.0' Notes: cdn events trigger test Filter: Domain: - 'www.taobao.com' - 'www.tmall.com' InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色 Qualifier: Prod # 版本(可选) 详细使用方法参数名 | 必填 | 类型 | 参数描述 |
---|
Region | true | Enum | 地域 | Service | false | Struct | 服务 | Function | false | Struct | 函数 |
Region参数取值:cn-beijing , cn-hangzhou , cn-shanghai , cn-qingdao , cn-zhangjiakou , cn-huhehaote , cn-shenzhen , cn-chengdu , cn-hongkong , ap-southeast-1 , ap-southeast-2 , ap-southeast-3 , ap-southeast-5 , ap-northeast-1 , eu-central-1 , eu-west-1 , us-west-1 , us-east-1 , ap-south-1 Service参数名 | 必填 | 类型 | 参数描述 |
---|
Name | false | String | service名称 | Description | false | String | service的简短描述 | InternetAccess | false | Boolean | 设为true让function可以访问公网 | Role | false | String/Struct | 授予函数计算所需权限的RAM role, 使用场景包含 1. 把 function产生的 log 发送到用户的 logstore 中 2. 为function 在执行中访问其它云资源生成 token | Log | false | String/Struct | log配置,function产生的log会写入这里配置的logstore | Vpc | false | String/Struct | vpc配置, 配置后function可以访问指定VPC | Nas | false | String/Struct | NAS配置, 配置后function可以访问指定NAS | Tag | false | List | 标签 |
Role如果是String类型,可以直接写arn,如果是Struct类型: 参数名 | 必填 | 类型 | 参数描述 |
---|
Name | true | String | 角色名 | Policies | true | List | 策略列表 |
Log如果是String类型,可以直接写Auto,如果是Struct类型: 参数名 | 必填 | 类型 | 参数描述 |
---|
LogStore | false | String | loghub中的logstore名称 | Project | false | String | loghub中的project名称 |
Vpc如果是String类型,可以直接写Auto,如果是Struct类型: 参数名 | 必填 | 类型 | 参数描述 |
---|
SecurityGroupId | false | String | 安全组ID | VSwitchIds | false | String | 一个或多个VSwitch ID | VpcId | false | String | VPC ID |
Nas如果是String类型,可以直接写Auto,如果是Struct类型: 参数名 | 必填 | 类型 | 参数描述 |
---|
Type | true | String | 只可填写Auto | FcDir | false | String | 函数计算目录 | LocalDir | false | List/String | 本地目录 |
参数名 | 必填 | 类型 | 参数描述 |
---|
UserId | false | String | userID | GroupId | false | String | groupID | MountPoints | false | List | 挂载点 |
其中MountPoints为: 参数名 | 必填 | 类型 | 参数描述 |
---|
Alias | false | String | 针对组件生效的别名(和线上资源无关) | NasAddr | false | String | NAS 服务器地址 | NasDir | false | String | NAS目录 | FcDir | false | String | 函数计算目录 | LocalDir | false | String | 本地目录 |
Tag参数名 | 必填 | 类型 | 参数描述 |
---|
Key | false | String | 标签名 | Value | false | String | 标签值 |
Function参数名 | 必填 | 类型 | 参数描述 |
---|
Name | false | String | function名称 | Description | false | String | function的简短描述 | MemorySize | false | String | function的内存规格 | CodeUri | false(默认为./) | String/Struct | 代码位置 | CAPort | false | String | CustomContainer/Runtime指定端口 | CustomContainer | false | Struct | 自定义镜像配置 | InstanceConcurrency | false | Number | 单实例多并发 | Handler | true | String | function执行的入口,具体格式和语言相关 | Runtime | true | String | function的运行环境 | Initializer | false | Struct | 初始化方法 | Environment | false | Struct | 环境变量 | Timeout | false | String | function运行的超时时间 | Triggers | false | List | 触发器 |
Environment参数名 | 必填 | 类型 | 参数描述 |
---|
Key | false | String | 环境Key | Value | false | String | 环境Value |
CodeUri直接填写路径 参数名 | 必填 | 类型 | 参数描述 |
---|
Bucket | false | String | function code包的bucket name | Object | false | String | code zip包的object name | Exclude | false | List | 除去路径 | Include | false | List | 包括路径 |
参数名 | 必填 | 类型 | 参数描述 |
---|
Bucket | false | String | function code包的bucket name | Src | false | String | 本地路径 | Exclude | false | List | 除去路径 | Include | false | List | 包括路径 |
CustomContainer参数名 | 必填 | 类型 | 参数描述 |
---|
CrAccount | false | Struct | 账号信息 | Image | false | String | 仓库地址 | Command | false | String | 指令 | Args | false | String | 参数 |
CrAccount参数名 | 必填 | 类型 | 参数描述 |
---|
User | false | String | CrAccount账号 | Password | false | String | CrAccount密码 |
Initializer参数名 | 必填 | 类型 | 参数描述 |
---|
Handler | false | String | 初始化 function 执行的入口,具体格式和语言相关 | Timeout | false | String | 初始化 function 运行的超时时间 |
Triggers参数名 | 必填 | 类型 | 参数描述 |
---|
Name | true | String | 触发器名称 | Type | true | Enum | 触发器类型 | Parameters | true | Struct | 参数内容 |
Type参数取值:OSS , CDN , MNSTopici , TableStore , Timer , HTTP , RDS , LOG Parameters[HTTP]参数名 | 必填 | 类型 | 参数描述 |
---|
AuthType | true | List | 鉴权类型,可选值:ANONYMOUS、FUNCTION | Methods | true | List | HTTP 触发器支持的访问方法 | Domains | false | String | 参数内容 | Enable | false | String | 表示是否启用该触发器。 | InvocationRole | false | String | 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限 | Qualifier | false | String | service 版本 |
AuthType枚举:ANONYMOUS ,FUNCTION Methods枚举:GET ,POST ,PUT ,DELETE ,HEAD Domains参数名 | 必填 | 类型 | 参数描述 |
---|
Domain | false | String | 域名 |
参数名 | 必填 | 类型 | 参数描述 |
---|
Domain | false | String | 域名 | Protocol | false | List(HTTP,HTTPS) | 协议 | CertConfig | false | Struct | 域名证书 | Routes | false | Struct | 路径配置 |
OSS参数名 | 必填 | 类型 | 参数描述 |
---|
Bucket | true | String | 存储桶名字 | Events | true | List | 事件 | Filter | true | Struct | 条件 | Qualifier | false | String | Prod # 版本(可选) |
其中Filter: 参数名 | 必填 | 类型 | 参数描述 |
---|
Prefix | true | String | 前缀 | Suffix | true | String | 后缀 |
Timer参数名 | 必填 | 类型 | 参数描述 |
---|
CronExpression | true | String | 触发事件表达式,例如'0 0 8 * * *' | Enable | false(默认是true) | Boolean | 是否开启 | Payload | false | Struct | 触发时传入的参数 | Qualifier | false | String | Prod # 版本(可选) |
Log参数名 | 必填 | 类型 | 参数描述 |
---|
SourceConfig | true | String | Source配置 | JobConfig | true | Struct | Job配置 | LogConfig | true | Struct | Log配置 | InvocationRole | false | String | 使用一个 RAM 角色的 ARN 为函数指定执行角色 | FunctionParameter | false | String | 日志服务将该配置内容作为函数 event, 当事件触发时 | Enable | false(默认是true) | Boolean | 是否开启 | Qualifier | false | String | Prod # 版本(可选) |
其中SourceConfig: 参数名 | 必填 | 类型 | 参数描述 |
---|
LogStore | true | String | 触发器会定时从该 Logstore 订阅数据到函数计算。 |
其中JobConfig: 参数名 | 必填 | 类型 | 参数描述 |
---|
MaxRetryTime | true | String | 表示日志服务触发函数执行时,如果遇到错误,所允许的最大尝试次数 | TriggerInterval | true | String | 表示日志服务触发函数执行的间隔 |
其中LogConfig: 参数名 | 必填 | 类型 | 参数描述 |
---|
Project | true | String | 表示日志服务 Project 名称 | LogStore | true | String | 表示触发函数执行时,产生的日志会记录到该 Logstore | FunctionParameter | false | String | 当事件触发时,会连同它的内容一起发送给函数 |
RDS参数名 | 必填 | 类型 | 参数描述 |
---|
InstanceId | true | String | 表示日志服务 Project 名称 | SubscriptionObjects | false | String | 订阅对象,当前支持到表级别,只有这些表的更新才会触发函数执行 | Retry | false | String | 重试次数,可选值:[0,3], 默认值为3。 | Concurrency | false | String | 调用并发量,可选值:[1,5], 默认值为1 | EventFormat | false | String | event格式,可选值:json, protobuf, 默认值为 protobuf。 | InvocationRole | false | String | 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。 | Qualifier | false | String | Prod # 版本(可选) |
MNSTopic参数名 | 必填 | 类型 | 参数描述 |
---|
TopicName | true | String | mns topic的名字 | Region | false | String | mns topic 所在的 region,如果不填,默认为和函数一样的 region | NotifyContentFormat | false | String | 推送给函数入参 event 的格式,可选值:STREAM, JSON, 默认值为: STREAM。 | NotifyStrategy | false | String | 调用函数的重试策略,可选值:BACKOFF_RETRY, EXPONENTIAL_DECAY_RETRY, 默认值为: BACKOFF_RETRY | FilterTag | false | String | 描述了该订阅中消息过滤的标签(标签一致的消息才会被推送),不超过 16 个字符的字符串,默认不进行消息过滤,即默认不填写该字段。 | InvocationRole | false | String | 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。 | Qualifier | false | String | Prod # 版本(可选) |
TableStore参数名 | 必填 | 类型 | 参数描述 |
---|
InstanceName | true | String | 表格存储实例的名字 | TableName | true | String | 实例中的表名 | InvocationRole | false | String | 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。 | Qualifier | false | String | Prod # 版本(可选) |
CDN参数名 | 必填 | 类型 | 参数描述 |
---|
EventName | true | String | 为 CDN 端触发函数执行的事件,一经创建不能更改 | EventVersion | true | String | 为 CDN 端触发函数执行事件的版本,一经创建不能更改 | Notes | true | String | 备注信息 | Filter | true | Struct | 过滤器(至少需要一个过滤器) | InvocationRole | false | String | 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。 | Qualifier | false | String | Prod # 版本(可选) |
其中Filter: 参数名 | 必填 | 类型 | 参数描述 |
---|
Domain | true | List | 是个字符串数组且必填,代表过滤参数值的集合。 | |
请发表评论