AWS::Lambda::Alias - AWS CloudFormation

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

別名的描述。

必要:否

類型:String

下限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 個字元。

必要:是

類型:String

下限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

別名呼叫的函數版本。

必要:是

類型:String

下限1

最大1024

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

Update requires: No interruption

Name

別名的名稱。

必要:是

類型:String

下限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