0

我正在用 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.

有没有人用过这个,可以告诉我“映射”是如何工作的?

谢谢!

4

1 回答 1

0

刚刚遇到这个问题并弄清楚它在寻找什么。它需要一种字典格式,其中环境变量的名称(也称为秘密名称)作为键(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,
        ...
    }                    
)    

相关文档链接:[StringParameter][1] [ECS Secret][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

于 2021-03-31T16:25:22.207 回答