SAM 每次都会创建新版本的 lambda 层,即使没有更改

SAM creates new version of lambda layer every time even if there is no change

提问人:Pavan Kumar 提问时间:10/9/2023 最后编辑:Ermiya EskandaryPavan Kumar 更新时间:10/10/2023 访问量:89

问:

我有一个触发 AWS SAM 模板的 Gitlab CI 管道。这创建了一个 lambda 层。但是,尽管我没有对 lambda 层进行任何更改并重新触发 Gitlab CI 管道,但会再次创建新版本的 AWS lambda 层。当没有对 lambda 层进行更改时,我需要停止创建新版本的 lambda 层。任何建议将不胜感激。

以下是我的文件(仅包含相关部分)

我的 SAM 模板:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Globals:
  Function:
    MemorySize: 128
    Timeout: 15

Resources:

  MyLambdaLayer:
    Type: AWS::Serverless::LayerVersion
    Properties:      
      LayerName: 'my-lambda-layer'
      ContentUri: layers/my-lambda-layer-code
      CompatibleRuntimes:
        - python3.7
    Metadata:
      BuildMethod: python3.7   

  MyLambda:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: 'my-aws-lambda'
      CodeUri: my-aws-lambda/
      Handler: lambda_function.lambda_handler
      Runtime: python3.7
      MemorySize: 128
      Timeout: 300
      EventInvokeConfig:
        MaximumRetryAttempts: 0
        MaximumEventAgeInSeconds: 100     
      Layers:          
        - !Ref MyLambdaLayer

Gitlab-ci 文件:

- echo "creating services"    
- sam build --template-file samtemplate.yaml
- sam package --template-file samtemplate.yaml --output-template-file output.yaml --s3-bucket $S3REPOBUCKET
- sam deploy --template-file output.yaml --stack-name $STACKNAME --capabilities CAPABILITY_NAMED_IAM --no-confirm-changeset --no-fail-on-empty-changeset --on-failure ROLLBACK 
amazon-web-services gitlab-ci aws-lambda-layers sam

评论

0赞 Ermiya Eskandary 10/9/2023
那么,我们能看到管道吗?我们如何在没有代码的情况下提供帮助?😅
1赞 Pavan Kumar 10/9/2023
嗨,Ermiya,对不起。我认为这是一个一般的环境问题,不需要代码引用:)。我现在已经包含了代码片段:)感谢您的检查!
0赞 Korgen 10/9/2023
您是否为您的 gitlab ci 使用任何持久存储?您可以查看 SAM 的选项来缓存构建 () 和 .查看 docs.aws.amazon.com/serverless-application-model/latest/...--cached--cache-dir
0赞 Ermiya Eskandary 10/10/2023
绝对没有改变吗?您可以使用或其他工具来确认没有真正更改吗?git
0赞 Pavan Kumar 10/10/2023
是的,Ermiya Eskandary。Git 中没有任何变化。我有 7 个层,每次构建管道时,都会在 AWS 中创建所有 7 层的新版本。

答: 暂无答案