Запустите команду CLI для контейнера ECS Fargate - PullRequest
0 голосов
/ 20 декабря 2018

Как можно выполнить команду CLI внутри контейнера, использующего ECS / Fargate?

Ответы [ 4 ]

0 голосов
/ 28 августа 2019

Возможно, вы сможете написать свой контейнер для выполнения команды cli, но вы не можете использовать ssh в контейнере.Если вы можете вызвать файл .sh из команды CMD в Dockerfile, команда cli будет выполняться до тех пор, пока на образе docker установлен aws-cli.
В Dockerfile обязательно запустите pip3 install awscli --upgrade --user, прежде чем вызывать скрипт, содержащий команды cli.

В качестве альтернативы вы можете использовать boto3 для Python или AWS SDK для JavaScript , который имеет исчерпывающую документацию и позволяет выполнять все команды, которые вы могли бы выполнить с помощью cli

0 голосов
/ 06 февраля 2019

Насколько я знаю и имея опыт работы с ECS, вам не разрешено это делатьaws не предоставляет вам доступ к базовым ресурсам.

, если вы используете конфигурацию fargate + EC2, то он также не имеет доступа к EC2.

0 голосов
/ 15 марта 2019

Я не знаю, пытаетесь ли вы этого достичь, но если вы хотите, вы можете запустить команду для нового контейнера, который вы создаете для этого случая с помощью правила CloudWatch

Это будетДостаточно, чтобы создать новое определение задачи и указать команду для выполнения (в примере выполнения команды Laravel)

ECSReputationSchedulerTask:
  Type: AWS::ECS::TaskDefinition
  Properties:
    Cpu: 256
    ExecutionRoleArn: !ImportValue ECSTaskExecutionRole
    Family: TaskDefinitionFamily
    Memory: 512
    NetworkMode: awsvpc
    RequiresCompatibilities:
      - FARGATE
    ContainerDefinitions:
      -
        Command:
          - "php"
          - "/home/application/artisan"
          - "execute:operation"
        Name: 'MySchedulerContainer'
        ...

, а затем ссылаться на него в правиле CloudWatch (к сожалению, этого пока нельзя сделать с помощью CloudFormation)

0 голосов
/ 06 февраля 2019

Как уже упоминалось в этом ответе ( Как я могу запускать команды в работающем контейнере в AWS ECS с использованием Fargate ), вы не можете сделать это из-за того, что AWS не предоставляет вам доступ к базовой инфраструктуре.

...