amazon-web-services - AWS Cloudformation 包不会更新代码

标签 amazon-web-services aws-cloudformation aws-cli

我有这个问题: 我已经使用 CF 部署了一个使用 aws cloudformation package 命令构建的函数。第一次部署工作完美。但是当它尝试更新代码时什么也没有发生。这就是我所做的:

  • 保存对本地代码和 CF 的更改并运行 aws cloudformation 包 (aws cloudformation package --template-file mycf.yml --s3-bucket mybucket --output-template-file packaged-mycf.yml --profile我的个人资料)
  • 我在打包文件中看到 CodeUri 下有一个新路径(CodeUri:s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c)
  • 我部署了更新(我在控制台中进行)我在更新下看到该功能的更新在哪里
  • CF 事件表示功能更新已完成
  • 我转到代码,相同的旧代码没有任何改变

其他人也有过同样的经历吗? 我尝试过重命名CF文件、脚本文件和打包的CF文件。但它仍然得到相同的结果。 这里有人知道我可以尝试什么吗?

这是CF未封装的功能部分的样子:

  CRFunction:
    Type: AWS::Serverless::Function
    Properties:
      Description: Convert IAM Policy into SCP
      Handler: scpfunction.lambda_handler
      Runtime: python3.9
      Timeout: 30
      MemorySize: 128
      FunctionName: !Sub SCP-Function-${SCPName}
      CodeUri: src/
      Environment:
        Variables:
          SCPName: !Ref SCPName
          Policy: !Ref IAMPolicyToConvertToSCP
          OUs: !Ref OUs
          Description: !Ref Description
      Policies:
        Statement:
          - Effect: Allow
            Action:
              - organizations:CreatePolicy
              - organizations:AttachPolicy
              - organizations:List*
              - iam:get*
            Resource: '*'

最佳答案

Have anyone else experienced the same?

这就是它的设计原理。未检测到对源代码的更改。您必须更改 KeyVersion在您的 CloudFormation 模板中部署新代码。

更新

s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c 只是您的函数代码,而不是模板。要使用 s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c 更新您的函数,您必须使用 AWS Lambda 控制台的 Amazon S3 位置:

enter image description here

关于amazon-web-services - AWS Cloudformation 包不会更新代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70575256/

相关文章:

amazon-web-services - 了解 AWS cloudformation 上的 Apigateway 和嵌套堆栈时出错

amazon-web-services - 让cloudformation等待,直到在s3中创建一个对象

python - 如何使用 boto3 将自定义 EC2 指标发送到 CloudWatch 仪表板?

aws-cloudformation - CloudFormation findInMap 返回 null

amazon-web-services - 如何配置automate_aws_accounts_creation_sso_users_assignment.yaml以在我选择的区域中运行?

python - 如何获取 Auto Scaling 组中实例的 IP

aws-lambda - 如何在 localstack 上运行 AWS Lambda dotnet

javascript - 如何从 getItem dynamoDB (JavaScript) 检索特定对象?

amazon-web-services - .net Core - 带有 AWS 负载均衡器和 Elastic Beanstalk 的 HTTPS 不起作用

amazon-web-services - AWS CLI : How can I query list values?