AWS::Lambda::Alias - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::Lambda::Alias

AWS::Lambda::Alias 资源会为 Lambda 函数版本创建一个别名。别名用来为客户端提供函数标识符,您可以更新该标识符以调用其他版本。

您还可以映射别名以在两个版本之间拆分调用请求。使用 RoutingConfig 参数可指定另一个版本以及该版本收到的调用请求的百分比。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::Lambda::Alias", "Properties" : { "Description" : String, "FunctionName" : String, "FunctionVersion" : String, "Name" : String, "ProvisionedConcurrencyConfig" : ProvisionedConcurrencyConfiguration, "RoutingConfig" : AliasRoutingConfiguration } }

属性

Description

别名的描述。

必需:否

类型:字符串

最低0

最高256

Update requires: No interruption

FunctionName

Lambda 函数的名称。

名称格式

  • 函数名称 - MyFunction

  • 函数 ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction

  • 部分 ARN - 123456789012:function:MyFunction

长度约束仅适用于完整 ARN。如果您仅指定函数名称,它的长度限制为 64 个字符。

必需:是

类型:字符串

最低1

最高140

模式(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

Update requires: Replacement

FunctionVersion

别名调用的函数版本。

必需:是

类型:字符串

最低1

最高1024

模式(\$LATEST|[0-9]+)

Update requires: No interruption

Name

别名的名称。

必需:是

类型:字符串

最低1

最高128

模式(?!^[0-9]+$)([a-zA-Z0-9-_]+)

Update requires: Replacement

ProvisionedConcurrencyConfig

为函数的别名指定预置并发配置。

必需:否

类型ProvisionedConcurrencyConfiguration

Update requires: No interruption

RoutingConfig

别名的路由配置

必需:否

类型AliasRoutingConfiguration

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 资源 ARN。

For more information about using the Ref function, see Ref.

示例

别名

具有版本和别名的 Node.js 函数。

YAML

Resources: function: Type: AWS::Lambda::Function Properties: Handler: index.handler Role: arn:aws:iam::123456789012:role/lambda-role Code: ZipFile: | exports.handler = function(event){ console.log(JSON.stringify(event, null, 2)) const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!') } return response }; Runtime: nodejs12.x TracingConfig: Mode: Active version: Type: AWS::Lambda::Version Properties: FunctionName: !Ref function Description: v1 alias: Type: AWS::Lambda::Alias Properties: FunctionName: !Ref function FunctionVersion: !GetAtt version.Version Name: BLUE

加权别名

将请求路由到两个版本的别名。

YAML

Resources: function: Type: AWS::Lambda::Function Properties: Handler: index.handler Role: arn:aws:iam::123456789012:role/lambda-role Code: ZipFile: | exports.handler = function(event){ console.log(JSON.stringify(event, null, 2)) const response = { statusCode: 200, body: JSON.stringify('Hello again from Lambda!') } return response } Runtime: nodejs12.x TracingConfig: Mode: Active version: Type: AWS::Lambda::Version Properties: FunctionName: !Ref function Description: v1 newVersion: Type: AWS::Lambda::Version Properties: FunctionName: !Ref function Description: v2 alias: Type: AWS::Lambda::Alias Properties: FunctionName: !Ref function FunctionVersion: !GetAtt newVersion.Version Name: BLUE RoutingConfig: AdditionalVersionWeights: - FunctionVersion: !GetAtt version.Version FunctionWeight: 0.5