全部产品
Search
文档中心

资源编排:ALIYUN::FC::Service

更新时间:Jun 09, 2023

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,
    "OssMountConfig": Map
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

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。

OssMountConfig

Map

OSS挂载配置。

更多信息,请参见OssMountConfig属性

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://

OssMountConfig语法

"OssMountConfig": {
  "MountPoints": List
}

OssMountConfig属性

属性名称

类型

必须

允许更新

描述

约束

MountPoints

List

OSS挂载点的详细配置信息。

更多信息,请参见MountPoints属性

MountPoints语法

"MountPoints": [
  {
    "ReadOnly": "Boolean",
    "BucketName": "String",
    "BucketPath": "String",
    "EndPoint": "String",
    "MountDir": "String",
  }
]

MountPoints属性

属性名称

类型

必须

允许更新

描述

约束

ReadOnly

Boolean

是否只读。

取值:

  • true:只读。

  • false:非只读。

BucketName

String

挂载的OSS Bucket。

BucketPath

String

挂载的OSS Bucket路径。

EndPoint

String

OSS访问地址。

MountDir

String

挂载目。

返回值

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示例