[英]cdk deploy deletes the bootstrap version ssm parameter
下面是我如何實例化我的堆棧:
new LambdaStack(new App(), 'LambdaStack', {
env: { account: AWS_ACCOUNT_ID, region: 'us-east-1' },
synthesizer: new DefaultStackSynthesizer({
qualifier: 'lambda-stk',
}),
stackName: 'LambdaStack',
});
首先,我確保我的~/.aws/credentials
文件具有正確的憑據。 然后我引導:
npx cdk bootstrap --qualifier lambda-stk --toolkit-stack-name LambdaStack aws://ACCOUNT_ID_HERE/us-east-1
控制台中的一切看起來都不錯。 然后,我部署:
npx cdk deploy --require-approval never
控制台中的一切看起來仍然不錯——lambda 已按我的預期創建,等等。
然后,我只是再次運行相同的部署命令而不做任何更改,我得到了這個錯誤:
LambdaStack failed: Error: LambdaStack: SSM parameter /cdk-bootstrap/lambda-stk/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)
經過進一步調查,引導命令似乎正確創建了引用的 SSM 參數,但隨后第一個部署命令刪除了該參數。 為什么要這樣做,我該如何解決這個問題?
通過將引導程序堆棧命名為與LambdaStack
不同的名稱來修復它。 我的印象是 bootstrap 命令正在啟動“主”堆棧將使用的堆棧,但實際上它是一個完全不同的堆棧。 所以我將引導程序命令更改為:
npx cdk bootstrap --qualifier lambda-stk --toolkit-stack-name LambdaStackCDKToolkit aws://ACCOUNT_ID_HERE/us-east-1
它奏效了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.