如何解决CDK部署后,CloudFormation模板未更新
我有一个生成的Swagger json文件。我有一个CDK应用程序,可以读取该文件,然后我就可以了
const cfnRestApi = this.api.node.defaultChild as apigateway.CfnRestApi;
cfnRestApi.body = JSON.parse(JSON.stringify(swaggerDefinition));
在执行cdk部署后,当我查看Cloud Formation模板时,它包含我的Swagger信息。但是,当我对Swagger json文件进行更改时,即使CDK部署成功运行后,CloudFormation中的模板也不会更新。我该如何解决?
解决方法
我将把swaggerDefinition
文件的读取移到bin/myapp.ts
并向堆栈界面添加一个额外的参数。像这样:
// ===>>> this is in the bin/myapp.ts
const swaggerDefinition = // read swagger file
new MyAppStack(app,'MyAppStack',{
swaggerDefinition,});
// ===>>> now your lib/myapp.ts
export interface MyAppStackProps extends cdk.StackProps {
swaggerDefinition: string; // or whatever type you think it needs
}
export class MyAppStack extends cdk.Stack {
constructor(scope: cdk.App,id: string,props: MyAppStackProps) {
super(scope,id,props);
...
// now you can use it freely in cdk code
其背后的原因是,一旦进入cdk构造,您就无法真正指望诺言的顺序,但是您可以以更可预测的方式在bin端执行任何操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。