AWS Cloudformation 包不会更新代码
AWS Cloudformation package wont update code
我有这个问题:
我已经部署了一个使用 aws cloudformation package 命令构建的 CF 函数。第一次部署工作完美。但是当它尝试更新代码时,什么也没有发生。这就是我所做的:
- 保存对我的本地代码和 CF 和 运行 aws cloudformation 包的更改(aws cloudformation 包 --template-file mycf.yml --s3-bucket mybucket --output-template-file打包-mycf.yml --profile myprofile)
- 我在打包后的文件中看到在CodeUri(CodeUri: s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c)下新建了一个路径
- 我部署更新(我在控制台中执行)我在更新下看到函数更新在哪里
- CF 事件表明功能更新已完成
- 我去写代码,老代码没变
有没有人有过同样的经历?
我试过重命名CF文件、脚本文件和打包后的CF文件。但它仍然得到相同的结果。
这里有人 ide 我可以尝试什么吗?
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?
它就是这样设计的。未检测到对源代码的更改。您必须在 CloudFormation 模板中更改 Key or Version 以部署新代码。
更新
s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c
只是你的函数代码,不是模板。要使用 s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c
更新函数,您必须使用 AWS Lambda 控制台的 Amazon S3 location
:
我解决了这个问题。
这不是与 AWS 相关的问题。
重新启动 VisualStudioCode 后,部署工作开始了。所以它与一些本地缓存或其他东西有关。
真的很奇怪,以前从来没有经历过这样的事情。
我有这个问题: 我已经部署了一个使用 aws cloudformation package 命令构建的 CF 函数。第一次部署工作完美。但是当它尝试更新代码时,什么也没有发生。这就是我所做的:
- 保存对我的本地代码和 CF 和 运行 aws cloudformation 包的更改(aws cloudformation 包 --template-file mycf.yml --s3-bucket mybucket --output-template-file打包-mycf.yml --profile myprofile)
- 我在打包后的文件中看到在CodeUri(CodeUri: s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c)下新建了一个路径
- 我部署更新(我在控制台中执行)我在更新下看到函数更新在哪里
- CF 事件表明功能更新已完成
- 我去写代码,老代码没变
有没有人有过同样的经历? 我试过重命名CF文件、脚本文件和打包后的CF文件。但它仍然得到相同的结果。 这里有人 ide 我可以尝试什么吗?
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?
它就是这样设计的。未检测到对源代码的更改。您必须在 CloudFormation 模板中更改 Key or Version 以部署新代码。
更新
s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c
只是你的函数代码,不是模板。要使用 s3://mybucket/319bd03cb3cc8d50ceb80e52bf51c53c
更新函数,您必须使用 AWS Lambda 控制台的 Amazon S3 location
:
我解决了这个问题。 这不是与 AWS 相关的问题。 重新启动 VisualStudioCode 后,部署工作开始了。所以它与一些本地缓存或其他东西有关。 真的很奇怪,以前从来没有经历过这样的事情。