【发布时间】: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