ALIYUN::FC::Service类型是函数计算资源管理的单位。服务下的所有函数共享一些相同的设置,例如服务授权、配置日志。同一服务下有多个函数,这些函数共享服务配置的资源(例如日志库,服务角色等)。

服务能帮助您更清晰的组织业务逻辑。

服务是运维管理的基本单位。一个服务可以表示一个应用,构建同一应用的不同函数放到同一服务下。服务之间不共享任何资源,没有任何依赖。

语法

{
  "Type": "ALIYUN::FC::Service",
  "Properties": {
    "Description": String,
    "VpcConfig": Map,
    "ServiceName": String,
    "Role": String,
    "NasConfig": Map,
    "LogConfig": Map,
    "InternetAccess": Boolean
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
Description String Service的简短描述。 无。
VpcConfig Map VPC配置, 配置后function可以访问指定VPC。 无。
ServiceName String Service名称。 以英文字母或下划线开头,可以包含数字和中划线,长度为1~128字符。
Role String 授予函数计算所需权限的RAM Role ARN,使用场景包含:
  • 把Function产生的Log发送到用户的Logstore中。
  • 为Function在执行中访问其它云资源生成Token。
无。
NasConfig Map NAS配置, 配置后Function可以访问指定NAS。 无。
LogConfig Map Log配置,Function产生的Log会写入这里配置的Logstore。 无。
InternetAccess Boolean 设为True可让函数访问公网。 无。

LogConfig语法

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

LogConfig属性

属性名称 类型 必须 允许更新 描述 约束
Project String Loghub中的Project名称。 无。
Logstore String Loghub中的Logstore名称。 无。

VpcConfig语法

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

VpcConfig属性

属性名称 类型 必须 允许更新 描述 约束
SecurityGroupId String 安全组ID。 无。
VSwitchIds List 一个或多个VSwitch ID。如:[String, ...] VSwitch ID数量>=1。
VpcId String VPC ID。 无。

NasConfig语法

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

NasConfig属性

属性名称 类型 必须 允许更新 描述 约束
MountPoints List 挂载点。 无。
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:系统为每个service生成的唯一ID。
  • ServiceName: 函数服务的名称。

示例

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ServiceName": {
      "Type": "String",
      "Description": "FC ServiceName",
      "Default": "fc-service"
    },
    "SecurityGroupId": {
      "Type": "String",
      "Description": "SecurityGroup Id",
      "Label": "SecurityGroup",
      "Default": "sg-bp1cw3n3zzid4mpn****"
    },
    "VSwitchIds": {
      "Type": "Json",
      "Description": "VSwitch Ids in a list.",
      "Default": ["vsw-bp13spgoa49vezrgt****"]
    },
    "VpcId": {
      "Type": "String",
      "Description": "Vpc Id",
      "Label": "Vpc",
      "Default": "vpc-bp1654b00av3biz6r****"
    }
  },
  "Resources": {
    "Service": {
      "Type": "ALIYUN::FC::Service",
      "Properties": {
        "Role": "acs:ram::1****:role/fc-service-role",
        "ServiceName": {
          "Ref": "ServiceName"
        },
        "VpcConfig": {
          "SecurityGroupId": {
            "Ref": "SecurityGroupId"
          },
          "VSwitchIds": {
            "Ref": "VSwitchIds"
          },
          "VpcId": {
            "Ref": "VpcId"
          }
        }
      }
    }
  },
  "Outputs": {
    "ServiceId": {
      "Value": {
        "Fn::GetAtt": [
          "Service",
          "ServiceId"
        ]
      }
    }
  }
}

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ServiceName:
    Type: String
    Description: FC ServiceName
    Default: fc-service
  SecurityGroupId:
    Type: String
    Description: SecurityGroup Id
    Label: SecurityGroup
    Default: sg-bp1cw3n3zzid4mpn****
  VSwitchIds:
    Type: Json
    Description: VSwitch Ids in a list.
    Default:
      - vsw-bp13spgoa49vezrgt****
  VpcId:
    Type: String
    Description: Vpc Id
    Label: Vpc
    Default: vpc-bp1654b00av3biz6r****
Resources:
  Service:
    Type: 'ALIYUN::FC::Service'
    Properties:
      Role: 'acs:ram::1****:role/fc-service-role'
      ServiceName:
        Ref: ServiceName
      VpcConfig:
        SecurityGroupId:
          Ref: SecurityGroupId
        VSwitchIds:
          Ref: VSwitchIds
        VpcId:
          Ref: VpcId
Outputs:
  ServiceId:
    Value:
      'Fn::GetAtt':
        - Service
        - ServiceId