本文件中的 “一定”,“不一定”,“必填”,“将要”,“最好不要”,“应该”,“不应该”,“推荐”,“可能”,和 “可选” 按照 RFC 2119 中的描述进行解释。
Serverless 的 Fun 是根据 MIT许可证 授权的。
Fun 是用于在阿里云上定义 serverless 应用的模型。
Serverless 应用是由事件触发功能组成的应用。一个典型的 serverless 应用由一个或多个由诸如向 阿里云 OSS 上传对象,在 阿里云 OTS 上执行数据操作以及 API 操作等事件触发的阿里云函数计算组成。这些函数可以独立使用。也可以利用其它资源,例如阿里云 OTS 的表和 OSS 的 buckets。最基本的 serverless 应用可以只有一个函数。
阿里云 Fun 用通过 YAML 格式的模板文件来描述 serverless 应用。
模板文件必须在文档根节点中包含一个值为 Aliyun::Serverless-2018-04-03
的 Transform
部分。
ROSTemplateFormatVersion: '2015-09-01'
Transform: 'Aliyun::Serverless-2018-04-03'
Resources:
MyService: # service name
Type: 'Aliyun::Serverless::Service'
Properties:
Policies:
- AliyunFCReadOnlyAccess # Managed Policy
- Version: '1' # Policy Document
Statement:
- Effect: Allow
Action:
- oss:GetObject
- oss:GetObjectACL
Resource: '*'
MyFunction: # function name
Type: 'Aliyun::Serverless::Function'
Properties:
Handler: index.handler
Runtime: nodejs6
CodeUri: './'
Events:
http-test: # trigger name
Type: HTTP # http trigger
Properties:
AuthType: ANONYMOUS
Methods: ['GET', 'POST', 'PUT']
阿里云 Fun 中的所有属性名称都区分大小写。
- Aliyun::Serverless::Service
- Aliyun::Serverless::CustomDomain
- Aliyun::Serverless::Api
- Aliyun::Serverless::TableStore
- Aliyun::Serverless::Log
- Aliyun::Serverless::MNSTopic
创建 FC 服务。服务是一个函数组,绑定函数公共属性,如 RAM 执行角色、日志服务。
属性名称 | 类型 | 描述 |
---|---|---|
Role | string |
使用一个 RAM 角色的 ARN 为函数指定执行角色。 如果忽略,将为函数创建一个默认的角色。 |
Policies | string | string 列表 | RAM policy 文档对象 | RAM policy 文档对象 列表 |
函数需要的阿里云管理的 RAM policies 或 RAM policy 文档的名称,将会被附加到该函数的默认角色上。如果设置了 Role 属性,则该属性会被忽略。 |
InternetAccess | boolean |
表示此服务是否可以访问公网。 |
VpcConfig | Vpc 配置对象 | 允许函数访问 vpc 内的服务。 |
LogConfig | Log 配置对象 | 允许函数执行的日志存储在日志服务中。 |
NasConfig | Nas 配置对象 | 允许函数访问 nas 服务。 |
TracingConfig | Tracing 配置 |
链路追踪集成。可选值为:Enable、Disable。 |
Description | string |
服务的描述。 |
创建函数以及触发该函数的事件源。函数是服务的子节点。
属性名称 | 类型 | 描述 |
---|---|---|
Handler | string |
必填。 处理函数的调用入口。 |
Runtime | string |
必填。 运行时环境。可选值为:nodejs6、nodejs8、nodejs10、nodejs12、python2.7、python3、java8、java11、php7.2、dotnetcore2.1、custom、custom-container。 |
CodeUri | string |
必填。 代码位置。支持 file、dir、zip、oss-bucket 等形式,更多信息参考。 |
Initializer | string |
初始化函数的调用入口。 |
Description | string |
函数的描述。 |
MemorySize | integer |
每次函数执行分配的内存大小,单位是 MB,默认为 128(MB)。 |
Timeout | integer |
处理函数在被终止之前可以运行的最长时间,单位是秒,默认为 3 秒。 |
InitializationTimeout | integer |
初始化函数在被终止之前可以运行的最长时间,单位是秒,默认为 3 秒。 |
EnvironmentVariables | 环境变量对象 | 为函数配置环境变量。 |
InstanceConcurrency | integer |
为函数设置一个实例并发度 (最小为 1,最大为 100),表示单个函数实例可以同时处理多少个请求。更多信息参考。 |
Events | 事件源对象 | 用于定义触发此函数的事件。 |
InstanceType | string |
函数实例类型。可选值为:e1、c1。 |
CAPort | integer |
监听端口。 |
CustomContainerConfig | 自定义容器配置 | 定义引用镜像。 |
AsyncConfiguration | 异步调用配置 | 异步调用。 |
InstanceLifecycleConfig | 扩展函数配置 | 扩展函数配置 |
MyService: # service name
Type: 'Aliyun::Serverless::Service'
MyFunction: # function name
Type: 'Aliyun::Serverless::Function'
Properties:
Handler: index.handler
Runtime: nodejs6
CodeUri: './'
Description: Nodejs Http Trigger Test
MemorySize: 1024
Timeout: 15
创建自定义域名。自定义域名是函数计算的一个功能,可以通过自定义域名调用函数执行。
属性名称 | 类型 | 描述 |
---|---|---|
Protocol | string |
自定义域名支持的协议类型。可选值为:HTTP 或 HTTP,HTTPS (英文逗号)。 |
RouteConfig | RouteConfig 对象 | 路由表,配置路径和函数的映射关系。 |
CertConfig | CertConfig 对象 | https 证书信息(仅当 Protocol 为 HTTP,HTTPS 时配置) |
示例一,Protocol
为 HTTP
时:
abc.com: # domain name
Type: 'Aliyun::Serverless::CustomDomain'
Properties:
Protocol: HTTP
RouteConfig:
Routes:
'/a':
ServiceName: serviceA
FunctionName: functionA
'/b':
ServiceName: serviceB
FunctionName: functionB
示例二,Protocol
为 HTTP,HTTPS
时:
abc.com: # domain name
Type: 'Aliyun::Serverless::CustomDomain'
Properties:
Protocol: HTTP,HTTPS
CertConfig:
CertName: 'CertName'
PrivateKey: './certificates/privateKey.pem'
Certificate: './certificates/certificate.pem'
RouteConfig:
Routes:
'/a':
ServiceName: serviceA
FunctionName: functionA
'/b':
ServiceName: serviceB
FunctionName: functionB
创建可通过 HTTPS 端点调用的阿里云 API 网关资源和方法的集合。
属性名称 | 类型 | 描述 |
---|---|---|
Name | string |
API 网关 RestApi 资源的名称。 |
StageName | string |
必填。 阶段的名称,API网关用作调用统一资源标识符(URI)中的第一个路径段。 |
DefinitionUri | string |
描述 API 的 Swagger 文档地址。必须指定 DefinitionUri 或 DefinitionBody 中的任何一个。 |
DefinitionBody | YAML 对象 |
描述您的 API 的 Swagger 规范。必须指定 DefinitionUri 或 DefinitionBody 中的任何一个。 |
DefinitionBody
可以参考: https://github.com/aliyun/fun/tree/master/examples/api-gateway/template.yml
StageName: prod
DefinitionUri: swagger.yml
Aliyun::Serverless::TableStore::Table
资源创建 TableStore(OTS)的实例。
属性名称 | 类型 | 描述 |
---|---|---|
ClusterType | string |
必填。 实例规格。可选值有:HYBRID、SSD。分别表示容量性实例、高性能实例。 |
Description | string |
必填。 实例注释。 |
Aliyun::Serverless::TableStore::Table
资源使用主键列表创建 TableStore(OTS)表。只有通过主键访问数据时才有用。
属性名称 | 类型 | 描述 |
---|---|---|
PrimaryKeyList | 主键列表 | 要用作表的主键的列表项的属性名称和类型。一旦创建,无法修改。 |
mytablestore: # tablestore name
Type: 'Aliyun::Serverless::TableStore'
Properties:
ClusterType: HYBRID
Description: just for fun test
mytable: # table name
Type: 'Aliyun::Serverless::TableStore::Table'
Properties:
PrimaryKeyList:
- Name: uid
Type: STRING
Aliyun::Serverless::Log
资源创建日志服务的 项目(Project)。
属性名称 | 类型 | 描述 |
---|---|---|
Description | string |
必填。 实例注释。 |
Aliyun::Serverless::Log::Logstore
资源用于创建项目(Project)下的 日志库(Logstore)。
属性名称 | 类型 | 描述 |
---|---|---|
TTL | integer |
数据的保存时间,单位为天,范围 1~3600。 |
shardCount | integer |
Shard 个数,单位为个,范围为 1~100。 |
test-log-project:
Type: 'Aliyun::Serverless::Log'
Properties:
Description: 'just test log'
test-log-store:
Type: 'Aliyun::Serverless::Log::Logstore'
Properties:
TTL: 10
ShardCount: 1
创建消息服务 MNS 中的 topic
属性名称 | 类型 | 描述 |
---|---|---|
Region | string |
必填。 创建 topic 所在的 region。 |
MaximumMessageSize | integer |
可选。 发送到该 Topic 的消息体最大长度,单位为 Byte, 默认值为 65536 |
LoggingEnabled | boolean |
可选。 是否开启日志管理功能, 默认值为 false |
test-topic:
Type: 'Aliyun::Serverless::MNSTopic'
Properties:
Region: ap-southeast-2
MaximumMessageSize: 2048
LoggingEnabled: false
描述类型为定时触发器的对象。
属性名称 | 类型 | 描述 |
---|---|---|
CronExpression | string |
必填。 函数被触发的时间,支持两种设置:@every、cron 表达式。 |
Payload | string |
代表触发器事件本身的输入内容,用户可以自定义。 |
Enable | boolean |
是否启用定时触发器。 |
Qualifier | string |
可选。 service 版本,例如: "LATEST"。 |
Type: Timer
Properties:
CronExpression: '0 0 8 * * *'
Enable: true
Payload: 'awesome-fc'
描述类型为 HTTP 触发器 的对象。
属性名称 | 类型 | 描述 |
---|---|---|
AuthType | string |
必填。 鉴权类型,可选值:ANONYMOUS、FUNCTION。 |
Methods | array |
必填。 HTTP 触发器支持的访问方法。可选值为:GET、POST、PUT、DELETE、HEAD。 |
InvocationRole | string |
可选。 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。ARN 的形式如下:acs:ram::1234567890:role/fc-invoke-test |
Qualifier | string |
可选。 service 版本,例如: "LATEST"。 |
http-trigger-test: # trigger name
Type: HTTP # trigger type
Properties:
AuthType: ANONYMOUS
Methods: ['GET', 'POST', 'PUT']
描述类型为 Log 触发器 的对象。
属性名称 | 类型 | 描述 |
---|---|---|
SourceConfig | object |
必填。 数据源的 Logstore 名称。触发器会定时从该 Logstore 订阅数据到函数计算。 |
JobConfig | object |
必填。 包含两个可配置属性,一个是 MaxRetryTime,表示日志服务触发函数执行时,如果遇到错误,所允许的最大尝试次数。另一个是 TriggerInterval,表示日志服务触发函数执行的间隔。 |
LogConfig | object |
必填。 包含三个可配置属性。第一个是 Project,表示日志服务 Project 名称。第二个是 Logstore,表示触发函数执行时,产生的日志会记录到该 Logstore。第三个是可选属性 FunctionParameter,它本身也是一个 object,当事件触发时,会连同它的内容一起发送给函数。 |
FunctionParameter | object |
可选。 日志服务将该配置内容作为函数 event, 当事件触发时,会连同它的内容一起发送给函数。默认值为空({})。 |
Enable | boolean |
表示是否启用该触发器。 |
InvocationRole | string |
可选。 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。ARN 的形式如下:acs:ram::1234567890:role/fc-invoke-test |
Qualifier | string |
可选。 service 版本,例如: "LATEST"。 |
Type: Log
Properties:
SourceConfig:
Logstore: logstore1
JobConfig:
MaxRetryTime: 1
TriggerInterval: 30
LogConfig:
Project: testlog
Logstore: logstore2
Enable: true
描述类型为 RDS 触发器 的对象。
属性名称 | 类型 | 描述 |
---|---|---|
InstanceId | string |
必填。 RDS 实例 ID |
SubscriptionObjects | array |
必填。 订阅对象,当前支持到表级别,只有这些表的更新才会触发函数执行, 比如参数为["db1.table1", "db2.table2"] |
Retry | string |
可选。 重试次数,可选值:[0,3], 默认值为3。 |
Concurrency | string |
可选。 调用并发量,可选值:[1,5], 默认值为1 |
EventFormat | string |
可选。 event格式,可选值:json, protobuf, 默认值为 protobuf。 |
InvocationRole | string |
可选。 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。ARN 的形式如下:acs:ram::1234567890:role/fc-invoke-test |
Qualifier | string |
可选。 service 版本,例如: "LATEST"。 |
rds-trigger-test: # trigger name
Type: RDS # trigger type
Properties:
InstanceId: rm-12345799xyz
SubscriptionObjects:
- db1.table1
Retry: 2
Concurrency: 1
EventFormat: json
描述类型为 MNSTopic 触发器 的对象。
属性名称 | 类型 | 描述 |
---|---|---|
TopicName | string |
必填。 mns topic的名字 |
Region | string |
可选。 mns topic 所在的 region,如果不填,默认为和函数一样的 region |
NotifyContentFormat | string |
可选。 推送给函数入参 event 的格式,可选值:STREAM, JSON, 默认值为: STREAM |
NotifyStrategy | string |
可选。 调用函数的重试策略,可选值:BACKOFF_RETRY, EXPONENTIAL_DECAY_RETRY, 默认值为: BACKOFF_RETRY, 详情参考 NotifyStrategy |
FilterTag | string |
可选。 描述了该订阅中消息过滤的标签(标签一致的消息才会被推送),不超过 16 个字符的字符串,默认不进行消息过滤,即默认不填写该字段 |
InvocationRole | string |
可选。 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。ARN 的形式如下:acs:ram::1234567890:role/fc-invoke-test |
Qualifier | string |
可选。 service 版本,例如: "LATEST"。 |
mns-topic-trigger-test: # trigger name
Type: MNSTopic # trigger type
Properties:
TopicName: test-topic
Region: cn-shanghai
NotifyContentFormat: JSON
NotifyStrategy: BACKOFF_RETRY
描述类型为 TableStore 触发器 的对象。
属性名称 | 类型 | 描述 |
---|---|---|
InstanceName | string |
必填。 表格存储实例的名字 |
TableName | string |
必填。 实例中的表名 |
InvocationRole | string |
可选。 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。ARN 的形式如下:acs:ram::1234567890:role/fc-invoke-test |
Qualifier | string |
可选。 service 版本,例如: "LATEST"。 |
tablestore-trigger-test: # trigger name
Type: TableStore # trigger type
Properties:
InstanceName: test-inst
TableName: test-tbl
描述类型为 OSS 触发器 的对象。
属性名称 | 类型 | 描述 |
---|---|---|
Events | array |
必填。 为 OSS 端触发函数执行的事件,比如参数为 ["oss:ObjectCreated:PutObject", "oss:ObjectCreated:PutSymlink"] 等... |
BucketName | stirng |
必填。 为 OSS 中对应的 bucket 名称。可参照OSS 示例 |
Filter | object |
必填。 为 OSS 对象过滤参数,满足过滤条件的 OSS 对象才可以触发函数,包含一个配置属性 key,表示过滤器支持过滤的对象键 (key)。 |
Key | OSS Key 对象 | 必填。 过滤器支持过滤的对象键 |
InvocationRole | string |
可选。 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。ARN 的形式如下:acs:ram::1234567890:role/fc-invoke-test |
Qualifier | string |
可选。 service 版本,例如: "LATEST"。 |
oss-trigger-test: # trigger name
Type: OSS # trigger type
Properties:
BucketName: ossBucketName # oss bucket name
Events:
- oss:ObjectCreated:*
- oss:ObjectRemoved:DeleteObject
Filter:
Key:
Prefix: source/
Suffix: .png
描述类型为 CDN 触发器 的对象。
属性名称 | 类型 | 描述 |
---|---|---|
EventName | stirng |
必填。 为 CDN 端触发函数执行的事件,一经创建不能更改 |
EventVersion | stirng |
必填。 为 CDN 端触发函数执行事件的版本,一经创建不能更改 |
Notes | stirng |
必填。 备注信息 |
Filter | CDN Filter 对象 | 必填。 过滤器(至少需要一个过滤器) |
InvocationRole | string |
可选。 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。ARN 的形式如下:acs:ram::1234567890:role/fc-invoke-test |
Qualifier | string |
可选。 service 版本,例如: "LATEST"。 |
cdn-trigger-name: # trigger name
Type: CDN # trigger type
Properties:
EventName: LogFileCreated
EventVersion: '1.0.0'
Notes: cdn events trigger test
Filter:
Domain: ['www.taobao.com','www.tmall.com']
描述触发函数的事件源的对象。
属性名称 | 类型 | 描述 |
---|---|---|
Type | string |
必填。 事件类型。 事件源类型包括 Api、Timer、Log 等。有关所有类型的更多信息, 请参阅 事件源类型。 |
Properties | * | 必填。 描述此事件映射属性的对象。必须符合定义的 类型 。有关所有类型的更多信息,请参阅 事件源类型。 |
Type: Timer
Properties:
CronExpression: '0 0 8 * * *'
Enable: true
Payload: 'awesome-fc
描述主键属性的对象列表。
属性名称 | 类型 | 描述 |
---|---|---|
Name | string |
主键的属性名称。默认为id 。 |
Type | string |
主键的属性类型。必须是 String ,Number 或 Binary 中的一个。 |
Properties:
PrimaryKeyList:
- Name: id
Type: String
属性名称 | 类型 | 描述 |
---|---|---|
ReadCapacityUnits | number |
在阿里云表格存储(OTS)平衡负载之前,为指定的表设置每秒所需项目的最少一致读取次数(最大大小为 4KB)。 |
WriteCapacityUnits | number |
在阿里云表格存储(OTS)平衡负载之前,为指定表设置每秒所需项目的最小一致写入次数(最大大小为 4KB)。 |
Properties:
ProvisionedThroughput:
ReadCapacityUnits: 5
WriteCapacityUnits: 5
Vpc 配置对象包含的属性包括: VpcId
、VSwitchIds
以及 SecurityGroupId
属性。它们所代表的含义参考。
示例:
VpcConfig:
VpcId: 'vpc-j6cfu2g6tslzekh8grfmk'
VSwitchIds: [ 'vsw-j6chkgsg9naj6gx49espd' ]
SecurityGroupId: 'sg-j6ceitqs6ljyssm1apom'
Log 配置对象用来指定函数执行的日志将要存储到的日志服务。
Log 配置对象可配置的属性包括:Project
、Logstore
、EnableRequestMetrics
。其中 Project
、Logstore
的概念与日志服务中的概念一致。更多信息参考。
示例:
LogConfig:
Project: localtestlog
Logstore: localteststore
EnableRequestMetrics: true/false
Nas 配置对象用来指定函数可以访问的 Nas 共享的文件系统。
Nas 配置对象可配置的属性包括:UserId
、GroupId
、MountPoints
。
其中 MountPoints
是个对象数组,每个对象包含了 ServerAddr
以及 MountDir
属性。它们代表的含义可以参考。
示例:
NasConfig:
UserId: 10003
GroupId: 10003
MountPoints:
- ServerAddr: '012194b28f-xxxxx.cn-hangzhou.nas.aliyuncs.com:/'
MountDir: '/mnt/test'
Nas 配置对象支持 Auto
可选值,使用该值可以简化 NasConfig
、 VpcConfig
以及 Policies
配置。
示例:
Properties:
Policies:
- AliyunECSNetworkInterfaceManagementAccess
VpcConfig:
VpcId: 'vpc-j6cfu2g6tslzekh8grfmk'
VSwitchIds: [ 'vsw-j6chkgsg9naj6gx49espd' ]
SecurityGroupId: 'sg-j6ceitqs6ljyssm1apom'
NasConfig:
UserId: 10003
GroupId: 10003
MountPoints:
- ServerAddr: '012194b28f-xxxxx.cn-hangzhou.nas.aliyuncs.com:/'
MountDir: '/mnt/test'
以上配置可简化为:
示例:
Properties:
NasConfig: Auto
更多信息参考。
环境变量可以配置一系列的键值对。
示例:
EnvironmentVariables:
'MYSQL_USER': 'root'
'MYSQL_PASS': 'pass'
CodeUri 用来指定代码存储的位置,它可以用来指定:
文件(file):
CodeUri: hello.js
目录(dir):CodeUri: ./
压缩包(zip):CodeUri: hello.zip
oss 文件:CodeUri: 'oss://my-fc-testt/2018/helloworld.zip'
。
其中,当指定为 oss 文件时,形式为 CodeUri: 'oss://bucket-name/filepath'
。
RouteConfig 配置对象可配置的属性包括:Routes。
Routes 是 RouteConfig 对象的一个元素,表示路由表的配置,其值为 pathConfig 对象数组,用于设置自定义域名中路径与函数的映射关系。
示例:
Routes: # pathConfig 数组
'/a': # path
ServiceName: serviceA
FunctionName: functionA
Qualifier: Prod # 版本(可选)
容器配置对象包含的属性包括: Image、Command、 Args 以及 AccelerationType 属性 示例:
CustomContainerConfig:
Image: 'registry-vpc.cn-shenzhen.aliyuncs.com/fc-demo-90/nodejs-express:v0.2'
Command: '["node"]'
Args: '["server.js"]'
AccelerationType: 'Default'
属性名称 | 类型 | 描述 |
---|---|---|
Image | string |
必填。 镜像地址。 |
Command | string |
可选。 容器启动命令。 |
Args | string |
可选。 容器启动命令参数。 |
AccelerationType | string |
可选。 是否开启镜像加速功能,Default 表示开启,None 或不填表示关闭。 |
异步调用配置对象包括:Destination、MaxAsyncEventAgeInSeconds、MaxAsyncRetryAttempts。
AsyncConfiguration:
Destination:
OnSuccess: acs:mns:::/queues/destination-demo/message
OnFailure: acs:mns:::/queues/destination-demo/message
MaxAsyncEventAgeInSeconds: 20
MaxAsyncRetryAttempts: 3
扩展函数配置对象包括:PreFreeze、PreStop。
InstanceLifecycleConfig:
PreFreeze:
Handler: index.PreFreeze
Timeout: 60
PreStop:
Handler: index.PreStop
Timeout: 60
CertConfig 用于描述一组 https 证书信息。Certificate
表示证书,CertName
表示证书名称,PrivateKey
表示私钥,其中证书和私钥按照 PEM 编码格式填写。
示例 1:
CertConfig:
CertName: 'CertName'
PrivateKey: './certificates/privateKey.pem'
Certificate: './certificates/certificate.pem'
示例 2:
CertConfig:
CertName: 'CertName'
PrivateKey: |
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA8WR/RbokaRz77bqoQE2aNYpZ/okMud8UFUniVfi6Pt2DdZ7z
yusWRt3flx15CiapZbs/fxOgwFI9cwaGZEvuKBnkqzVNJojV3ASHJRwmvjsm6NzO
OFYsLDy2pfgiTlBQHyjXFWIg2k/0Ype2VnyBMOzZq31JQfYgEklNj2Yhkz5qcx9A
uSXJ4cewiOZ0bhpqU34sqvCToQXn6VrhPsJxwk8N5R6h1u5fpmAaggZ0JsxSz/cK
1gZYtlHjLRNcbD4oxeRnms8TeBIjgSjmr1qH9Rx6OwVZjQ42WG+XDXp7yiktP8vK
UvuvZRPS8irTKWq2edujRBra019rJkfb4lLgkQIDAQABAoIBABB5tHoU11FZShSS
rdMduM24sKW/wt+Yyy0cytblUAjkY4mOnMMXwoB5uj39I/q+YsdvvUi2FT2rH0iP
hHKqAAo6ojHRRH/BzR7kLDkrL7XCIci48VZFA2TNjAXN5sGDl8RYrD1oYiekV2C3
TBmhC8xEDiM3PN3Ep7G30RRdeyMqeHfzWtEIs0V/E/Dqkukcj3RYVGd12yVlmjyi
cP5th29AgS0prNRfHv2+0G2L73jiM5WYqJK0tzaNg4V4nZBebyCtv+vCOQC+jjda
4DHh0YIeRLrfLqT04+dqE1zbKIPOCo6GoiNGnB92GXiyZliJGDjWSM9hbOML4pur
oXOKXgECgYEA+1DnI2N5Rz/rBKJTmoERPUygSAAmF66M4zvqqlIC1QUle0L/O1mo
02tQev6vvDKYImDt5vFrYRs4NB9UVTdMeCZXXaskugrwyXhtwb/cdMJ+2/dFL9lT
nRiKKITzApOhomx4XP3H/2uA7MsOhd53E8Zh9zTURDB7ZXDUsWMaiCECgYEA9eQ/
KuBgFnO2ePba+U6lrH0QVEg42byEXwigtijeo9knB7E9j+w/ddxLplw6cdrPuEHs
OmvxcyetrqdoNGvUeRn6UXKMJPI4ec2a1XQn+az9uEwckEEeiL/PwOT8m1NXu44Q
Xr5oxrEpicqha/kVlpJdtKnnZVURXrr83CLbinECgYAZTikn+BEzKm14tvuiGBLr
UDbnaRRs2AeZrePQKJfeaTk/8xwOFtYYC7s71z9MvO9yrr3lvjNowLvlC66LMhlC
E+JCLURycz2Rm825b588JoVtkrVlvwVbUShAMjrh7Ime+Dsaafdkcae2sC+TLTZi
SFx+7tPc1eDm8viHsAnw4QKBgQDgWgUYheimE6Xl8LYSyqN3IhUIEW1tnQfZ/fFE
wz2Amd12s0zMSG4Oh5WukG/y+gaUw/FZzKtculNKDAyT597RL9apAa7E9wx4dhRT
tcvTjvdgdHGLXR8S/o/8G/IvdneR9SkSiQDoaTTROETYU0hTPfCpqmwqlNdoa4vS
/yr4wQKBgEQPD42mSlRDEH96DwTqEQsXQTs/BtJFvMzozxcHIPa1byxWzDQk0A41
pc9Hyu4AtN0rTyUk6iGGllht+u20pSeUMQpGNiAc599pK93JjlGGj/h61xoO3r8/
B7rxEVPGms9nM/Ztl0EWvr9vvAckZb8ToknxGIh+jNfLAQhykdN0
-----END RSA PRIVATE KEY-----
Certificate: |
-----BEGIN CERTIFICATE-----
MIICxjCCAa4CCQDCGoU6hDAZXjANBgkqhkiG9w0BAQsFADAlMSMwIQYJKoZIhvcN
AQkBFhR4aWF5dWxlMTQ4QGdtYWlsLmNvbTAeFw0xOTA1MzEwMzI2NDdaFw0yOTA1
MjgwMzI2NDdaMCUxIzAhBgkqhkiG9w0BCQEWFHhpYXl1bGUxNDhAZ21haWwuY29t
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8WR/RbokaRz77bqoQE2a
NYpZ/okMud8UFUniVfi6Pt2DdZ7zyusWRt3flx15CiapZbs/fxOgwFI9cwaGZEvu
KBnkqzVNJojV3ASHJRwmvjsm6NzOOFYsLDy2pfgiTlBQHyjXFWIg2k/0Ype2VnyB
MOzZq31JQfYgEklNj2Yhkz5qcx9AuSXJ4cewiOZ0bhpqU34sqvCToQXn6VrhPsJx
wk8N5R6h1u5fpmAaggZ0JsxSz/cK1gZYtlHjLRNcbD4oxeRnms8TeBIjgSjmr1qH
9Rx6OwVZjQ42WG+XDXp7yiktP8vKUvuvZRPS8irTKWq2edujRBra019rJkfb4lLg
kQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQB1rRYwP7doPVupFm985A0H2lLLJIZ8
1bWWaN+knWpW0KgIZACGCDzqgHQG+rB95DDHBUvjF/DI/EZjUxlfaOtddh5bjibZ
2I+A+DeIDGaD3/Bc7fAYRImPq1gN4SlusFCquEfe9nILoCbsss8rq1FdYr3tRzTZ
JJpe9Qs2TXk6kczSfaJTft5zxjiUV5NvQyqU3K8G2dxl68c6wC7LKpeQbT3ApWw1
VZfBb9upP/FQc2EK8OkS/M5h4aGBq9YroYxvuKnfM/FUocJRaN9uKwH08D5WfXlq
rbocmNuL4ev/pJ0H8AFO4usquEjGrhLJLnxTblFB2/dmlc4JJOMUYbfR
-----END CERTIFICATE-----
Key 配置对象的属性包括: Prefix
和 Suffix
属性。它们所代表的含义分别为:匹配前缀和匹配后缀。
示例:
Key:
Prefix: source/
Suffix: .png
Filter 配置对象为 CDN 过滤参数,满足过滤条件的才可以触发函数。Filter 对象可配置的属性目前只包括:Domain
, Domain 是个字符串数组且必填,代表过滤参数值的集合。
示例:
Filter:
Domain: ['www.taobao.com','www.tmall.com']
默认 role 会被生成的场景包括:指定了 policies 的时候或者服务配置了 vpc、nas 等明确需要特定权限的属性时候。
这样设计的原因是:
- 因为生成 role 用户需要为子用户分配一个很大的权限,非必要场景下,我们尽可能不去生成这个默认 role,尽可能避免用户的子用户权限不够情况。
- 一般这个 role 的使用场景是用来调用其他云服务的,即使生成了默认的 role,但是没有指定 policies 也是没有意义的,因为不会有相应的权限。
- ram 有角色数量的限制。