указание aws зависимости контейнера ECS / Fargate не работает - PullRequest
0 голосов
/ 18 июня 2020

Я получил приведенный ниже код на языке aws -cdk Python, но не могу развернуть, ошибка недоступна redis_container, что я делаю не так, я хочу, чтобы сначала запускался контейнер redis, а затем все остальное. возможно, я неправильно понимаю зависимость контейнера ??

        ecs_redis_task = ecs.FargateTaskDefinition(self,
        id = 'redis',
        cpu=512,
        memory_limit_mib =1024
        )

        redis_container = ecs_redis_task.add_container(id = 'redis_container',
        image = img_.from_ecr_repository(repository=repo_, tag='redis_5.0.5')
              )

        redis_container.add_port_mappings({
            'containerPort' : 6379
        })

        redis_dependency = ecs.ContainerDependency(container = redis_container, condition = ecs.ContainerDependencyCondition.HEALTHY)

        ecs_webserver_task = ecs.FargateTaskDefinition(self,
        id = 'webserver',
        cpu=256,
        memory_limit_mib =512
        )

        webserver_container = ecs_webserver_task.add_container(id = 'webserver_container',
        image = img_.from_ecr_repository(repository=repo_, tag='airflow_1.10.9')
       )

        webserver_container.add_port_mappings({
            'containerPort' : 8080
        })

        webserver_container.add_container_dependencies(redis_dependency)

Если я удалю код зависимости, он будет развернут нормально!

Ошибка:

12/24 | 2:46:51 PM | CREATE_FAILED        | AWS::ECS::TaskDefinition                    | webserver (webserverEE139216) Cannot depend on container + 'redis_container' because it does not exist (Service: AmazonECS; Status Code: 400; Error Code: ClientException; Request ID: 81828979-9e65-474e-ab0e-b163168d5613)

1 Ответ

1 голос
/ 19 июня 2020

Я только что попробовал этот код, и он работает, как ожидалось, добавляя зависимость в определении задачи, единственное, что изменилось в вашем коде, - это изображение синтезатор:

 "webserverEE139216": {
      "Type": "AWS::ECS::TaskDefinition",
      "Properties": {
        "ContainerDefinitions": [
          {
            "DependsOn": [
              {
                "Condition": "HEALTHY",
                "ContainerName": "redis_container"
              }
            ],
            "Essential": true,
            "Image": "amazon/amazon-ecs-sample",
            "Name": "webserver_container",
            "PortMappings": [
              {
                "ContainerPort": 8080,
                "Protocol": "tcp"
              }
            ]
          }
        ],
...