ALIYUN::FC::Service类型用于创建服务。服务下的所有函数共享一些相同的设置,例如:服务授权、配置日志。同一服务下有多个函数,这些函数共享服务配置的资源(例如:日志库、服务角色等)。

服务能帮助您更清晰地组织业务逻辑,是运维管理的基本单位。一个服务可以表示一个应用,构建同一应用的不同函数将放到同一服务下。服务之间不共享任何资源,没有任何依赖。

语法

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

属性

属性名称 类型 必须 允许更新 描述 约束
Description String 服务的描述。
VpcConfig Map 专有网络配置,配置后函数可以访问指定专有网络。 更多信息,请参见VpcConfig属性

更新资源栈时,若要删除网络配置,取值为:

{
  "VpcId": "",
  "VSwitchIds": [],
  "SecurityGroupId": ""
}
ServiceName String 服务的名称。 长度为1~128个字符,以英文字母或下划线(_)开头,可包含英文字母、数字、下划线(_)和短划线(-)。
Role String 授予函数计算所需权限的RAM角色ARN。 使用场景包含:
  • 将函数产生的日志发送到用户的日志库中。
  • 为函数在执行中访问其它云资源生成Token。
NasConfig Map NAS配置,配置后函数可以访问指定NAS资源。 更多信息,请参见NasConfig属性

更新资源栈时,若要删除NAS配置,取值为:

{
  "MountPoints": [],
  "UserId": -1,
  "GroupId": -1
}
LogConfig Map 日志配置,函数产生的日志会写入此处配置的日志库中。 更多信息,请参见LogConfig属性
TracingConfig Map 链路追踪配置。 当函数计算与链路追踪集成后,您可以记录请求在函数计算的耗时时间、查看函数的冷启动时间、记录函数内部时间的消耗等。

更多信息,请参见TracingConfig属性

InternetAccess Boolean 函数是否可以访问公网。 取值:
  • true:可以访问公网。
  • false:不可以访问公网。
DeletionForce Boolean 是否强制删除。 当您指定VpcConfig时该参数生效。取值:
  • true:直接删除服务,而不等待由函数计算为服务所创建的ENI被函数清理掉。
    说明 如果创建服务用到的交换机或安全组为参数传入,则在删除时可指定DeletionForce为true,以跳过等待,从而减少删除时间。
  • false(默认值):等待由函数计算为服务所创建的所有ENI被函数计算清理掉,然后再删除服务。

如果在当前资源栈中创建了交换机或安全组,并基于它们创建了此服务,在删除时无需指定DeletionForce,并要求在一小时内不要触发此服务的函数调用,这样其ENI才能被正常删除,进而正常删除整个资源栈。

Tags List 标签。 最多支持20个标签。

更多信息,请参见Tags属性

VpcBindings List 函数计算中绑定的VPC ID列表。 默认情况下,可以在创建函数后使用Internet端点和内部端点来调用函数。如果希望使用指定的VPC调用函数,则必须将指定的VPC绑定到函数计算。

最多支持指定20个VPC。

LogConfig语法

"LogConfig": {
  "Project": String,
  "Logstore": String,
  "EnableRequestMetrics": Boolean,
  "LogBeginRule": String   
}

LogConfig属性

属性名称 类型 必须 允许更新 描述 约束
Project String 日志中枢中的Project名称。
Logstore String 日志中枢中的日志库名称。
EnableRequestMetrics Boolean 是否启用请求监控。 取值:
  • true:启用。
  • false:禁用。
LogBeginRule String 日志分割规则。

VpcConfig语法

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

VpcConfig属性

属性名称 类型 必须 允许更新 描述 约束
SecurityGroupId String 安全组ID。
VSwitchIds List 交换机ID列表。 多个交换机ID之间用半角逗号(,)分隔。
VpcId String 专有网络ID。

NasConfig语法

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

NasConfig属性

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

TracingConfig语法

"TracingConfig": {
  "Type": String,
  "Params": Map
}

TracingConfig属性

属性名称 类型 必须 允许更新 描述 约束
Type String 链路追踪系统的类型。
Params Map 链路追踪的参数。

MountPoints语法

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

MountPoints属性

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

Tags语法

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]  

Tags属性

属性名称 类型 必须 允许更新 描述 约束
Key String 标签键。 长度为1~128个字符,不能以aliyunacs:开头,不能包含http://https://
Value String 标签值。 长度为0~128个字符,不能以aliyunacs:开头,不能包含http://https://

返回值

Fn::GetAtt

  • ServiceId:系统为每个服务生成的唯一ID。
  • ServiceName:服务名称。
  • Tags:标签。
  • Role:RAM角色。
  • LogProject:日志项目。
  • Logstore:日志库。
  • InternetAccess:函数是否可以访问公网。
  • VpcId:专有网络ID。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Description: Test FC
    Parameters: {}
    Resources:
      Service:
        Type: ALIYUN::FC::Service
        Properties:
          ServiceName: mytest
    Outputs: {}                 
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "Test FC",
      "Parameters": {
      },
      "Resources": {
        "Service": {
          "Type": "ALIYUN::FC::Service",
          "Properties": {
            "ServiceName": "mytest"
          }
        }
      },
      "Outputs": {
      }
    }

更多示例,请参见创建函数服务、创建函数、执行函数、触发函数执行、发布版本、创建别名和创建预留实例的组合示例:JSON示例YAML示例