AWS Изменить определение задачи службы ECS (развернуть) без использования CloudFormation - PullRequest
0 голосов
/ 04 декабря 2018

Медленно перемещая все наши ресурсы под управление CloudFormation, которое до сих пор было относительно безболезненным.

Я немного сбиваюсь с развертыванием новых определений задач (только промежуточная среда) наУслуги ECS.Есть части, которыми, я не думаю, можно управлять с помощью CloudFormation, потому что служба ECS ссылается на параметр.

Текущий процесс:

  • Нажмите на developветвь в BitBucket

  • BitBucket Pipelines, а затем обрабатывает (упрощенно):

    • создание изображения ECR с тегом latest

    • создание новой редакции определения задачи с помощью aws ecs register-task-definition --cli-input-json $TASK_JSON

    • обновление службы ECS новым определением задачи с использованием aws ecs update-service --cluster ${ECS_CLUSTER_NAME} --service ${ECS_SERVICE} --task-definition $TASK_DEFINITION

Все это работает хорошо!


Переместите управление ресурсами ECS в CloudFormation с чем-то вроде

Parameters:
  TaskDefinition:
    Type: String
    Description: Task Definition ARN

Resources:
  HTTPService:
    Type: AWS::ECS::Service
    DependsOn: ListenerRule
    Properties:
      Cluster: !Ref ECSCluster
    Role: !Ref ServiceRole
    DesiredCount: 1
    HealthCheckGracePeriodSeconds: 120
    TaskDefinition: !Ref TaskDefinition
    LoadBalancers:
      - ContainerName: http
        ContainerPort: 80
        TargetGroupArn: !Ref TargetGroup

TargetGroup:
  Type: AWS::ElasticLoadBalancingV2::TargetGroup
  Properties:
    VpcId: !Ref VPC
    Port: 80
    Protocol: HTTP
    Matcher:
      HttpCode: 200
    HealthCheckIntervalSeconds: 15
    HealthCheckPath: /
    HealthCheckProtocol: HTTP
    HealthCheckTimeoutSeconds: 5
    HealthyThresholdCount: 2

ListenerRule:
  Type: AWS::ElasticLoadBalancingV2::ListenerRule
  Properties:
    ListenerArn: !Ref Listener
    Priority: 2
    Conditions:
      - Field: path-pattern
        Values:
          - /blog
    Actions:
      - TargetGroupArn: !Ref TargetGroup
        Type: forward

Если бы я былчтобы выполнить команду aws ecs update-service вручную, теперь стек CloudFormation будет не синхронизирован со службой ECS.

Взглянул, может быть, вместо этого запускается aws cloudformation update-stack, но разрешения IAM для пользователя BitBucket стали довольно сложными.

Возможно, я здесь неправильно настроил все это.Любые указатели / предложения здесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...