【问题标题】:AWS cdk Fargate task definition with python - how to use add_container(secrets=[Mapping[str, Secret]])?使用 python 定义 AWS cdk Fargate 任务 - 如何使用 add_container(secrets=[Mapping[str, Secret]])?
【发布时间】:2021-04-01 00:25:22
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: aws-cdk aws-fargate aws-secrets-manager ecs-taskdefinition


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 2022-09-22
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多