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,使用场景包含: 1.
  1. 把 function产生的 log 发送到用户的 logstore 中。
  2. 为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": String,
  "VpcId": String
}

VpcConfig属性

属性名称 类型 必须 允许更新 描述 约束
SecurityGroupId String 安全组ID。
VSwitchIds String 一个或多个VSwitch ID。如: [String, ...] 数量>=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。

示例

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "Service": {
      "Type": "ALIYUN::FC::Service",
      "Properties": {
        "Description": {
          "Ref": "Description"
        },
        "VpcConfig": {
          "Ref": "VpcConfig"
        },
        "ServiceName": {
          "Ref": "ServiceName"
        },
        "Role": {
          "Ref": "Role"
        },
        "NasConfig": {
          "Ref": "NasConfig"
        },
        "LogConfig": {
          "Ref": "LogConfig"
        },
        "InternetAccess": {
          "Ref": "InternetAccess"
        }
      }
    }
  },
  "Parameters": {
    "Description": {
      "Type": "String",
      "Description": "Service description"
    },
    "VpcConfig": {
      "Type": "Json",
      "Description": "VPC configuration. Function Compute uses the config to setup ENI in the specific VPC."
    },
    "ServiceName": {
      "MinLength": 1,
      "Type": "String",
      "Description": "Service name",
      "MaxLength": 128
    },
    "Role": {
      "Type": "String",
      "Description": "The role grants Function Compute the permission to access user\u2019s cloud resources, such as pushing logs to user\u2019s log store. The temporary STS token generated from this role can be retrieved from function context and used to access cloud resources. "
    },
    "NasConfig": {
      "Type": "Json",
      "Description": "NAS configuration. Function Compute uses a specified NAS configured on the service."
    },
    "LogConfig": {
      "Type": "Json",
      "Description": "Log configuration. Function Compute pushes function execution logs to the configured log store."
    },
    "InternetAccess": {
      "Type": "Boolean",
      "Description": "Set it to true to enable Internet access.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    }
  },
  "Outputs": {
    "ServiceId": {
      "Description": "The service ID",
      "Value": {
        "Fn::GetAtt": [
          "Service",
          "ServiceId"
        ]
      }
    }
  }
}