问题描述
我正在用 python 编写 AWS Fargate 任务定义,如 https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ecs/FargateTaskDefinition.html?highlight=fargatetaskdefinition
我想向 Fargate 添加数据库机密,但我对 secrets (Optional[Mapping[str,Secret]])
感到困惑,因为不清楚应如何将机密传递给此参数。我尝试使用字典但得到 jsii.errors.JSIIError: Expected object reference
。
有人用过这个吗,能告诉我“映射”是如何工作的吗?
谢谢!
解决方法
刚遇到这个问题并弄清楚它在寻找什么。 它需要一个字典格式,以环境变量的名称(即秘密的名称)作为键(str)和一个 IParameter 作为值(秘密)。
# Create Task definition
task_def = _ecs.FargateTaskDefinition(
self,"task definition",cpu=256,memory_limit_mib=1024
)
# Create StringParameter
parameter = _ssm.StringParameter.from_secure_string_parameter_attributes(
self,id="blah",version=1,parameter_name="/Fully/Qualified/Name"
)
secret_object = _ecs.Secret.from_ssm_parameter(parameter)
container = task_def.add_container(
"container",image=_ecs.ContainerImage.from_ecr_repository(repo,"latest-test"),secrets={
"var name": secret_object,...
}
)
相关文档链接: [字符串参数][1] [ECS秘密][2]
[1]:https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ssm/StringParameter.html [2]:https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ecs/Secret.htm