如何在未安装 cdk 时使用上下文参数执行 cdk 命令,即使用 npm 运行 cdk?

How to execute cdk commands with contextual parameters when cdk is not installed i.e., using npm run cdk?

我有一个名为 Temp 的 cdk 堆栈,我想向其传递上下文参数。

new MyStack(app, `Temp`);

当我运行在bash中执行以下命令时,我成功获得了合成模板:

cdk synth Temp -c param1=abc

然而,当我 运行 以下内容时,我收到一条错误消息 找不到匹配 'param1=abc' 的堆栈。使用"list"打印清单

npm run cdk synth Temp -c param1=abc

请指教如何在未安装 cdk 时使用上下文参数执行 cdk synth?

使用 CfnParameter 将参数传递给您的堆栈,检查 CfnParameter API link

  • 首先创建你的 CfnParameter:

    const parameterName = new CfnParameter(this, "parameterName", {type:"String"});

  • 将其传递到您的堆栈:

    new MyStack(app, 'Temp', { paramPassed: parameterName.valueAsString});

  • 运行 cdk 合成器:

    cdk synth

  • 将参数传递给您的堆栈:

    cdk deploy Temp --parameters parameterName=stackParamValue

检查这个 documentation 由 AWS

提供

它的工作原理是添加 -- 如下:

npm run cdk synth Temp -- -c param1=abc

感谢https://jurosh.com/blog/npm-pass-parameters-into-script

我们可以使用特殊的 npm 命令——并将参数直接传递到所有 运行 脚本中。像这样:npm start -- --server=localhost