Aliyun::Serverless::Service类型用于创建函数计算服务。

语法

{
  "Type": "Aliyun::Serverless::Service",
  "Properties": {
    "Role": String,
    "Policies": List,
    "Description": String,
    "InternetAccess": Boolean,
    "VpcConfig": Map,
    "LogConfig": Map,
    "NasConfig": Map
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
Role String 授予函数计算所需权限的RAM角色ARN。
Policies List 创建一个默认RAM角色,并授权指定的策略。 示例值:
[
"AliyunOSSFullAccess",
  {
    "Version": "1",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "oss:Get*",
          "oss:List*"
        ],
        "Resource": "*"
      }
    ]
  }
]

如果指定Role参数,则Policies不生效,也不会创建默认RAM角色。

Policies可以是系统策略名或者策略内容。如果Policies是系统策略名,则将该策略授权给默认RAM角色。如果Policies是策略内容,则会新建一个策略授权给默认RAM角色。

Description String 服务的描述。
InternetAccess Boolean 服务是否可以访问公网。 取值:
  • true(默认值):可以访问。
  • false:不可以访问。
VpcConfig Map 专有网络配置, 配置后函数可以访问指定专有网络。 详情请参见VpcConfig属性
LogConfig Map 日志配置,函数产生的日志会写入此处配置的日志库中。 详情请参见LogConfig属性
NasConfig Map NAS配置, 配置后函数可以访问指定NAS。 详情请参见NasConfig属性

VpcConfig语法

"VpcConfig": {
  "SecurityGroupId": String,
  "VSwitchIds": List,
  "VpcId": String
}

VpcConfig属性

属性名称 类型 必须 允许更新 描述 约束
SecurityGroupId String 安全组ID。
VSwitchIds List 一个或多个交换机ID。例如:[VSwitchId, ...]。 vSwitch ID数量大于等于1。
VpcId String 专有网络ID。

LogConfig语法

"LogConfig": {
  "Project": String,
  "Logstore": String
}

LogConfig属性

属性名称 类型 必须 允许更新 描述 约束
Project String 日志中枢中的project名称。
Logstore String 日志中枢中的日志库名称。

NasConfig语法

"NasConfig": {
  "MountPoints": List,
  "UserId": Integer,
  "GroupId": Integer
}

NasConfig属性

属性名称 类型 必须 允许更新 描述 约束
MountPoints List 挂载点 详情请参见MountPoints属性
UserId Integer 用户ID 取值范围:-1~65534。
GroupId Integer 组ID 取值范围:-1~65534。

MountPoints语法

"MountPoints": [
  {
    "ServerAddr": String,
    "MountDir": String
  }
]

MountPoints属性

属性名称 类型 必须 允许更新 描述 约束
ServerAddr String NAS服务器地址
MountDir String 本地挂载目录

返回值

Fn::GetAtt

  • ServiceId:系统为每个服务生成的唯一ID。
  • ServiceName:服务名称。

示例

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Transform": "Aliyun::Serverless-2018-04-03",
  "Resources": {
    "MyService": {
      "Type": "Aliyun::Serverless::Service",
      "Properties": {
        "Policies": [
          "AliyunFCReadOnlyAccess",
          {
            "Version": "1",
            "Statement": [
              {
                "Effect": "Allow",
                "Action": [
                  "oss:GetObject",
                  "oss:GetObjectACL"
                ],
                "Resource": "*"
              }
            ]
          }
        ]
      }
    }
  }
}

YAML格式

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: '*'