相关疑难解决方法(0)

如何使用 SAM 部署来获取 lambda,以及 AutoPublishAlias 和其他别名

我的目标是额外SAM deploy调用将导致 :staging 别名反映最新版本,并且 :live 将通过外部方式更新,但必须初始化为部署时创建的相同版本。

我正在使用 SAM 部署,并且需要 lambda 上的别名。在初始模板中添加它们很棘手,因为您无法创建具有显式版本号的别名,并且 AWS CloudFormation 强制保留旧的 lambda 版本,因此您在不检查资源的情况下无法知道版本。这是迄今为止我发现的最好的方法,但它很麻烦并且不能很好地扩展(每个堆栈都需要相同的逻辑)。

此代码还依赖于cfn-response.js进行自定义资源管理。

我怎样才能做得更好?

模板.yaml

GetLatestVersionOfLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
        FunctionName: GetLatestVersionOfLambdaFunction
        Description: Given an existing Lambda Function Name, return the most recent version number
        VersionDescription: !Sub ${deployVersionDescription}
        AutoPublishAlias: staging
        CodeUri: src/
        Handler: getLatestLambdaVersionByName.handler
        MemorySize: 128
        Runtime: nodejs12.x
        Timeout: 10
        Tracing: Active
        Role: !GetAtt GetLatestVersionOfLambdaRole.Arn
SampleLambdaGetMaxVersionFunction:
    Type: Custom::FunctionVersion
    Properties:
        ServiceToken: !GetAtt GetLatestVersionOfLambdaFunction.Arn
        FunctionName: !Ref SampleLambdaFunction
SampleLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
        FunctionName: SampleLambda
        AutoPublishAlias: staging …
Run Code Online (Sandbox Code Playgroud)

aws-cloudformation aws-lambda aws-sam

5
推荐指数
0
解决办法
1260
查看次数

标签 统计

aws-cloudformation ×1

aws-lambda ×1

aws-sam ×1