簡體   English   中英

cdk deploy 刪除bootstrap版本ssm參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM