通过本组件,您可以简单快速的将阿里云函数计算项目部署到线上。
模版拉取:
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
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 |
函数 |
参数取值: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
| 参数名 |
必填 |
类型 |
参数描述 |
| 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 |
标签 |
如果是String类型,可以直接写arn,如果是Struct类型:
| 参数名 |
必填 |
类型 |
参数描述 |
| Name |
true |
String |
角色名 |
| Policies |
true |
List |
策略列表 |
如果是String类型,可以直接写Auto,如果是Struct类型:
| 参数名 |
必填 |
类型 |
参数描述 |
| LogStore |
false |
String |
loghub中的logstore名称 |
| Project |
false |
String |
loghub中的project名称 |
如果是String类型,可以直接写Auto,如果是Struct类型:
| 参数名 |
必填 |
类型 |
参数描述 |
| SecurityGroupId |
false |
String |
安全组ID |
| VSwitchIds |
false |
String |
一个或多个VSwitch ID |
| VpcId |
false |
String |
VPC ID |
如果是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 |
本地目录 |
| 参数名 |
必填 |
类型 |
参数描述 |
| Key |
false |
String |
标签名 |
| Value |
false |
String |
标签值 |
| 参数名 |
必填 |
类型 |
参数描述 |
| 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 |
触发器 |
| 参数名 |
必填 |
类型 |
参数描述 |
| Key |
false |
String |
环境Key |
| Value |
false |
String |
环境Value |
-
直接填写路径
-
| 参数名 |
必填 |
类型 |
参数描述 |
| 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 |
包括路径 |
| 参数名 |
必填 |
类型 |
参数描述 |
| CrAccount |
false |
Struct |
账号信息 |
| Image |
false |
String |
仓库地址 |
| Command |
false |
String |
指令 |
| Args |
false |
String |
参数 |
| 参数名 |
必填 |
类型 |
参数描述 |
| User |
false |
String |
CrAccount账号 |
| Password |
false |
String |
CrAccount密码 |
| 参数名 |
必填 |
类型 |
参数描述 |
| Handler |
false |
String |
初始化 function 执行的入口,具体格式和语言相关 |
| Timeout |
false |
String |
初始化 function 运行的超时时间 |
| 参数名 |
必填 |
类型 |
参数描述 |
| Name |
true |
String |
触发器名称 |
| Type |
true |
Enum |
触发器类型 |
| Parameters |
true |
Struct |
参数内容 |
参数取值:OSS, CDN, MNSTopici, TableStore, Timer, HTTP, RDS, LOG
| 参数名 |
必填 |
类型 |
参数描述 |
| AuthType |
true |
List |
鉴权类型,可选值:ANONYMOUS、FUNCTION |
| Methods |
true |
List |
HTTP 触发器支持的访问方法 |
| Domains |
false |
String |
参数内容 |
| Enable |
false |
String |
表示是否启用该触发器。 |
| InvocationRole |
false |
String |
使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限 |
| Qualifier |
false |
String |
service 版本 |
枚举:ANONYMOUS,FUNCTION
枚举:GET,POST,PUT,DELETE,HEAD
-
| 参数名 |
必填 |
类型 |
参数描述 |
| Domain |
false |
String |
域名 |
-
| 参数名 |
必填 |
类型 |
参数描述 |
| Domain |
false |
String |
域名 |
| Protocol |
false |
List(HTTP,HTTPS) |
协议 |
| CertConfig |
false |
Struct |
域名证书 |
| Routes |
false |
Struct |
路径配置 |
| 参数名 |
必填 |
类型 |
参数描述 |
| Bucket |
true |
String |
存储桶名字 |
| Events |
true |
List |
事件 |
| Filter |
true |
Struct |
条件 |
| Qualifier |
false |
String |
Prod # 版本(可选) |
其中Filter:
| 参数名 |
必填 |
类型 |
参数描述 |
| Prefix |
true |
String |
前缀 |
| Suffix |
true |
String |
后缀 |
| 参数名 |
必填 |
类型 |
参数描述 |
| CronExpression |
true |
String |
触发事件表达式,例如'0 0 8 * * *' |
| Enable |
false(默认是true) |
Boolean |
是否开启 |
| Payload |
false |
Struct |
触发时传入的参数 |
| Qualifier |
false |
String |
Prod # 版本(可选) |
| 参数名 |
必填 |
类型 |
参数描述 |
| 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 |
当事件触发时,会连同它的内容一起发送给函数 |
| 参数名 |
必填 |
类型 |
参数描述 |
| 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 # 版本(可选) |
| 参数名 |
必填 |
类型 |
参数描述 |
| 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 # 版本(可选) |
| 参数名 |
必填 |
类型 |
参数描述 |
| InstanceName |
true |
String |
表格存储实例的名字 |
| TableName |
true |
String |
实例中的表名 |
| InvocationRole |
false |
String |
使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。 |
| Qualifier |
false |
String |
Prod # 版本(可选) |
| 参数名 |
必填 |
类型 |
参数描述 |
| 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 |
是个字符串数组且必填,代表过滤参数值的集合。 |