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
文件具有正确的凭据。然后我bootstrap:
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)
经进一步调查,似乎 bootstrap 命令正确创建了引用的 SSM 参数,但随后第一个部署命令删除了该参数。它为什么会这样做,我该如何解决这个问题?
通过将 bootstrap 堆栈命名为与 LambdaStack
不同的名称来修复它。我的印象是 bootstrap 命令正在旋转“主”堆栈将使用的堆栈,但实际上它是一个完全不同的堆栈。所以我将 bootstrap 命令更改为:
npx cdk bootstrap --qualifier lambda-stk --toolkit-stack-name LambdaStackCDKToolkit aws://ACCOUNT_ID_HERE/us-east-1
成功了。
以下是我如何实例化我的堆栈:
new LambdaStack(new App(), 'LambdaStack', {
env: { account: AWS_ACCOUNT_ID, region: 'us-east-1' },
synthesizer: new DefaultStackSynthesizer({
qualifier: 'lambda-stk',
}),
stackName: 'LambdaStack',
});
首先,我确保我的 ~/.aws/credentials
文件具有正确的凭据。然后我bootstrap:
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)
经进一步调查,似乎 bootstrap 命令正确创建了引用的 SSM 参数,但随后第一个部署命令删除了该参数。它为什么会这样做,我该如何解决这个问题?
通过将 bootstrap 堆栈命名为与 LambdaStack
不同的名称来修复它。我的印象是 bootstrap 命令正在旋转“主”堆栈将使用的堆栈,但实际上它是一个完全不同的堆栈。所以我将 bootstrap 命令更改为:
npx cdk bootstrap --qualifier lambda-stk --toolkit-stack-name LambdaStackCDKToolkit aws://ACCOUNT_ID_HERE/us-east-1
成功了。