在使用CDK部署时似乎无法获取SSM参数



我目前正在尝试通过CDK SSM参数库为我的管道获取参数,但我似乎面临一个奇怪的问题:

CfnParameter at 'nonProdAccountId.Parameter' should be created in the scope of a Stack, but no Stack found

但是,我非常确信我正在堆栈的作用域(BackendPipelineStack(中获取Parameter值。

//cdk.ts aka my entrypoint
const app = new cdk.App()
...
new BackendPipelineStack(app, "BackendPipelineStack", {
nonProdAccountId: StringParameter.fromStringParameterName(app, "nonProdAccountId", "nonProdAccountId").stringValue,
apiStack,
commonInfraStack,
deploymentStack,
})

我是不是错过了什么?

TIA-

现在,您正在应用程序的范围中导入StringParameter。每个StackConstruct中的第一个参数是作用域。

你可以在应用程序的范围内创建堆栈,但不能在应用程序范围内创建构造——它们必须在堆栈范围内创建。

您需要将导入移动到堆栈中,并使用堆栈作为导入的作用域(传递this而不是app(。

所以你会改变

nonProdAccountId: StringParameter.fromStringParameterName(app, "nonProdAccountId", "nonProdAccountId").stringValue,

nonProdAccountIdParamName: "nonProdAccountId",

并使用将参数导入堆栈内部

const nonProdAccountId = new StringParameter.fromStringParameterName(this, "nonProdAccountId", nonProdAccountIdParamName).stringValue;

相关内容

  • 没有找到相关文章

最新更新