如何从文件加载 aws cdk --parameters?

Max*_*nya 3 aws-cdk

我的 CDK 堆栈包含太多需要在命令行中指定的参数(子网 id、api url)。所以我想将它们保存在单独的文件中,例如 dev.properties 或 prod.json。cdk.json 中的上下文值可能是这样,但我不知道如何保留多个并行版本。有没有办法应用文件中的参数,例如 cdk deploy --parameters file:///dev.json?

ale*_*311 6

您可以使用该cdk.json文件来实现此目的。例如,我的cdk.json样子

{
  "app": "python3 app.py",
  "profile": "my-aws-profile",
  "context": {
    "@aws-cdk/core:enableStackNameDuplicates": "true",
    "aws-cdk:enableDiffNoFail": "true",
    "ENVIRONMENTS": {
      "prod": {
        "bucket_name": "my-prod-bucket-name",
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的堆栈代码中

from aws_cdk import (core, aws_s3)


class MyStack(core.Stack):
    def __init__(self, scope: core.Construct, id: str, env) -> None:
        super().__init__(scope, id, env=env)

        environments = self.node.try_get_context("ENVIRONMENTS")
        environment = environments.get("prod")
        bucket_name = environment.get("bucket_name")

        my_bucket = aws_s3.Bucket(
            self,
            bucket_name,
            bucket_name=bucket_name
        )
Run Code Online (Sandbox Code Playgroud)