【问题标题】:Can't set environment variables for container in ApplicationLoadBalancedFargateService无法在 ApplicationLoadBalancedFargateService 中为容器设置环境变量
【发布时间】:2020-02-06 20:11:55
【问题描述】:

(CDK 1.18.0 和 Python 3.6)

task_role = iam.Role(
    self,
    id=f"...",
    assumed_by=iam.ServicePrincipal("ecs-tasks.amazonaws.com"),
    managed_policies=[...]
)

repo = get_repo(self)

task_def = ecs.FargateTaskDefinition(
    self,
    "...",
    memory_limit_mib=30720,
    cpu=4096,
    task_role=task_role,
    execution_role=self.ecs_execution_role,
)

cont = task_def.add_container(
    "...",
    image=ecs.ContainerImage.from_ecr_repository(repo),
    logging=ecs.LogDrivers.aws_logs(stream_prefix=f"Logging"),
    command=["bash", "start.sh"],
    environment={"NAME1": 'VALUE1', "NAME2": 'VALUE2'} # what would I have to put here?
)

cont.add_port_mappings(ecs.PortMapping(container_port=8080))
fg = ecsp.ApplicationLoadBalancedFargateService(
    self,
    "...",
    task_definition=task_def,
    assign_public_ip=True,
)

我想将 NAME1=VALUE1 和 NAME2=VALUE2 传递给容器。

我尝试了各种方式来表达环境变量。但没有一个奏效。我在这里做一些根本错误的事情吗?

除此特定问题外,服务部署和运行。

【问题讨论】:

  • “无效”是否意味着变量在任务定义中不可用?还是部署失败?
  • "none working" 是指为 env 变量尝试各种模式,例如 {"n1":"v1","n2":"v2"} or [{"n1":"v1"},{"n2":"v2"}] or [{"name":"n1","value":"v2"},{"name":"n2","value":"v2"}]。它既不是deploys 也不是synths。 cdk.out/ 中堆栈的 CF 模板不包含环境变量。

标签: python-3.x aws-cdk


【解决方案1】:

您遵循的方法似乎适用于最新版本 (1.23.0)。但是我在发行说明中找不到任何提示,为什么这可能会改变。可以更新到最新版本吗?

        task_def.add_container("container", environment={"a": "b", "c": "d"},  image=aws_ecs.ContainerImage.from_registry(name="TestImage"), memory_limit_mib=512)
  newtask1C300F30:
    Type: AWS::ECS::TaskDefinition
    Properties:
      ContainerDefinitions:
        - Environment:
            - Name: a
              Value: b
            - Name: c
              Value: d
          Essential: true
          Image: TestImage
          Memory: 512
          Name: container

【讨论】:

  • 我已经与一位同事确认该方法是正确的,并且使用 Dict[str,str] 适用于 CDK 1.18.0 - 也许我的 CDK 设置有问题。
猜你喜欢
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 2020-10-22
  • 2018-07-20
  • 2018-10-15
  • 2017-05-11
  • 1970-01-01
相关资源
最近更新 更多