❗ ❗ ❗ Обратите внимание, что этот проект больше не поддерживается. Лучшим вариантом для новых развертываний Fargate на AWS является интерфейс командной строки AWS Copilot, который более функционален и активно поддерживается AWS. ❗ ❗ ❗
По умолчанию Fargate использует us-east-1 . CLI принимает параметр --region и будет учитывать настройки среды AWS_REGION и AWS_DEFAULT_REGION . Обратите внимание, что при указании региона, в котором недоступны все необходимые службы, возникнет ошибка.
См. таблицу регионов, чтобы узнать, какие услуги доступны в каких регионах.
Fargate создан с использованием AWS SDK для Go, который ищет учетные данные в следующих местах:
Переменные среды
Общий файл учетных данных
Профиль экземпляра EC2
Дополнительную информацию см. в разделе «Указание учетных данных» в документации AWS SDK for Go.
Флаг | По умолчанию | Описание |
---|---|---|
--кластер | фаргейт | Имя кластера ECS |
--область | США-Восток-1 | Регион AWS |
--без цвета | ЛОЖЬ | Отключить цветной вывод |
--многословный | ЛОЖЬ | Подробный вывод |
Задачи — это однократное выполнение вашего контейнера. Экземпляры вашей задачи выполняются до тех пор, пока вы не остановите их вручную с помощью API AWS, Консоли управления AWS или fargate task stop
, либо пока они не будут прерваны по какой-либо причине.
fargate task list
Список запущенных групп задач
fargate task run <task-group-name> [--num <count>] [--cpu <cpu-units>] [--memory <MiB>]
[--image <docker-image>] [--env <key=value>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
Запускайте новые задачи
Вы должны указать имя группы задач, чтобы взаимодействовать с задачами в последующих командах для просмотра журналов, остановки и проверки задач. Имена групп задач не обязательно должны быть уникальными — с одной и той же группой задач можно запустить несколько конфигураций экземпляров задач.
Можно запустить несколько экземпляров задачи, указав число в флаге --num. Если номер не указан, будет запущен один экземпляр задачи.
Настройки ЦП и памяти можно дополнительно указать в единицах ЦП и мебибайтах соответственно, используя флаги --cpu и --memory. Каждые 1024 модуля ЦП эквивалентны одному виртуальному ЦП. AWS Fargate поддерживает только определенные комбинации конфигураций ЦП и памяти:
ЦП (ЦП) | Память (МиБ) |
---|---|
256 | 512, 1024 или 2048 |
512 | От 1024 до 4096 с шагом 1 ГиБ. |
1024 | От 2048 до 8192 с шагом 1 ГиБ. |
2048 | От 4096 до 16384 с шагом 1 ГиБ. |
4096 | От 8192 до 30720 с шагом 1 ГиБ. |
Если не указано, Fargate будет запускать задачи минимального размера с 0,25 виртуальных ЦП (256 модулей ЦП) и 0,5 ГБ (512 МБ) памяти.
Образ контейнера Docker, который будет использоваться в задаче, можно дополнительно указать с помощью флага --image. Если не указано, Fargate создаст новый образ контейнера Docker из текущего рабочего каталога и отправит его в Amazon ECR в репозитории, названном в честь группы задач. Если текущий рабочий каталог является репозиторием git, образ контейнера будет помечен короткой ссылкой на коммит HEAD. В противном случае будет использоваться временная метка в формате ГГГГММДДЧЧММСС.
Переменные среды можно указать с помощью флага --env. Укажите --env с параметром key=value несколько раз, чтобы добавить несколько переменных.
Группы безопасности можно дополнительно указать для задачи, передав флаг --security-group-id с идентификатором группы безопасности. Чтобы добавить несколько групп безопасности, передайте --security-group-id с идентификатором группы безопасности несколько раз. Если параметр --security-group-id опущен, к задаче будет применена разрешительная группа безопасности.
По умолчанию задача будет создана в VPC по умолчанию и прикреплена к подсетям VPC по умолчанию для каждой зоны доступности. Вы можете переопределить это, указав явные подсети, передав флаг --subnet-id с идентификатором подсети.
Роль задачи можно дополнительно указать с помощью флага --task-role, указав либо полный ARN роли IAM, либо имя роли IAM. Задачи смогут взять на себя эту роль.
fargate task info <task-group-name> [--task <task-id>]
Проверка задач
Показывает расширенную информацию для каждой запущенной задачи в группе задач или для конкретных задач, указанных с помощью флага --task. Информация включает переменные среды, которые могут различаться в зависимости от задачи в группе задач. Чтобы проверить несколько конкретных задач в группе задач, определите --task с идентификатором задачи несколько раз.
fargate task ps <task-group-name>
Список запущенных задач
fargate task logs <task-group-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
Показать логи задач
Возвращайте либо определенный сегмент журналов задач, либо хвостовые журналы в режиме реального времени, используя опцию --follow. Журналы имеют префикс имени потока журналов в формате «fargate/<имя-группы-задач>/<идентификатор-задачи>».
Follow будет продолжать работать и возвращать журналы, пока не будет прерван Control-C. Если передан параметр --follow, параметр --end не может быть указан.
Журналы можно вернуть для определенных задач в группе задач, передав идентификатор задачи с помощью флага --task. Передайте --task с идентификатором задачи несколько раз, чтобы получить журналы нескольких конкретных задач.
Определенное окно журналов можно запросить, передав параметры --start и --end с выражением времени. Выражение времени может быть либо продолжительностью, либо меткой времени:
Вы можете фильтровать журналы по определенному термину, передав выражение фильтра с помощью флага --filter. Передайте один термин для поиска этого термина или несколько терминов для поиска сообщений журнала, включающих все термины. Дополнительные сведения см. в документации CloudWatch Logs.
fargate task stop <task-group-name> [--task <task-id>]
Остановить задачи
Останавливает все задачи в группе задач, если они запускаются только с именем группы задач, или останавливает отдельные задачи, если одна или несколько задач передаются с помощью флага --task. Укажите --task с параметром идентификатора задачи несколько раз, чтобы остановить несколько конкретных задач.
Сервисы управляют долгоживущими экземплярами ваших контейнеров, запущенных на AWS Fargate. Если ваш контейнер по какой-либо причине завершает работу, планировщик служб перезапустит ваши контейнеры и обеспечит выполнение желаемого количества задач в вашей службе. Службы можно использовать вместе с балансировщиком нагрузки для распределения трафика между задачами в вашей службе.
fargate service list
Список услуг
fargate service create <service name> [--cpu <cpu units>] [--memory <MiB>] [--port <port-expression>]
[--lb <load-balancer-name>] [--rule <rule-expression>]
[--image <docker-image>] [--env <key=value>] [--num <count>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
Создать новую услугу
Настройки ЦП и памяти можно дополнительно указать в единицах ЦП и мебибайтах соответственно, используя флаги --cpu и --memory. Каждые 1024 модуля ЦП эквивалентны одному виртуальному ЦП. AWS Fargate поддерживает только определенные комбинации конфигураций ЦП и памяти:
ЦП (ЦП) | Память (МиБ) |
---|---|
256 | 512, 1024 или 2048 |
512 | От 1024 до 4096 с шагом 1 ГиБ. |
1024 | От 2048 до 8192 с шагом 1 ГиБ. |
2048 | От 4096 до 16384 с шагом 1 ГиБ. |
4096 | От 8192 до 30720 с шагом 1 ГиБ. |
Если не указано, Fargate будет запускать задачи минимального размера с 0,25 виртуальных ЦП (256 модулей ЦП) и 0,5 ГБ (512 МБ) памяти.
Образ контейнера Docker, который будет использоваться в службе, можно дополнительно указать с помощью флага --image. Если не указано, Fargate создаст новый образ контейнера Docker из текущего рабочего каталога и отправит его в Amazon ECR в репозитории, названном в честь группы задач. Если текущий рабочий каталог является репозиторием git, образ контейнера будет помечен короткой ссылкой на коммит HEAD. В противном случае будет использоваться временная метка в формате ГГГГММДДЧЧММСС.
Чтобы использовать службу с балансировщиком нагрузки, при создании службы необходимо указать порт. Укажите порт, передав флаг --port и выражение порта протокол:номер-порта. Например, если служба прослушивает порт 80 и использует HTTP, укажите HTTP:80. Допустимые протоколы: HTTP, HTTPS и TCP. Вы можете указать только один порт.
При необходимости службы можно настроить на использование балансировщика нагрузки. Чтобы разместить балансировщик нагрузки перед службой, передайте флаг --lb с именем балансировщика нагрузки. Если вы указываете балансировщик нагрузки, вы также должны указать порт с помощью флага --port, на который балансировщик нагрузки должен пересылать запросы. При необходимости балансировщики нагрузки приложений можно настроить для маршрутизации трафика HTTP/HTTPS в службу на основе правила. Правила настраиваются путем передачи одного или нескольких правил путем указания флага --rule вместе с выражением правила. Выражения правил имеют формат ТИП=ЗНАЧЕНИЕ. Тип может быть PATH или HOST. PATH соответствует PATH запроса, а HOST соответствует запрошенному имени хоста в HTTP-запросе. Типы PATH и HOST могут включать до трех подстановочных знаков: * для соответствия нескольким символам и ? чтобы соответствовать одному символу. Если правила опущены, служба будет действием балансировщика нагрузки по умолчанию.
Переменные среды можно указать с помощью флага --env. Укажите --env с параметром key=value несколько раз, чтобы добавить несколько переменных.
Укажите желаемое количество задач, которые должна обслуживать служба, передав флаг --num с числом. Если вы опустите этот флаг, Fargate настроит сервис с желаемым количеством задач, равным 1.
Группы безопасности можно дополнительно указать для службы, передав флаг --security-group-id с идентификатором группы безопасности. Чтобы добавить несколько групп безопасности, передайте --security-group-id с идентификатором группы безопасности несколько раз. Если параметр --security-group-id опущен, к службе будет применена разрешительная группа безопасности.
По умолчанию служба будет создана в VPC по умолчанию и прикреплена к подсетям VPC по умолчанию для каждой зоны доступности. Вы можете переопределить это, указав явные подсети, передав флаг --subnet-id с идентификатором подсети.
Роль задачи можно дополнительно указать с помощью флага --task-role, указав либо полный ARN роли IAM, либо имя роли IAM. Эту роль смогут взять на себя задачи, выполняемые службой.
fargate service deploy <service-name> [--image <docker-image>]
Развертывание нового образа в сервисе
Образ контейнера Docker, который будет использоваться в службе, можно дополнительно указать с помощью флага --image. Если не указано, Fargate создаст новый образ контейнера Docker из текущего рабочего каталога и отправит его в Amazon ECR в репозитории, названном в честь группы задач. Если текущий рабочий каталог является репозиторием git, образ контейнера будет помечен короткой ссылкой на коммит HEAD. В противном случае будет использоваться временная метка в формате ГГГГММДДЧЧММСС.
fargate service info <service-name>
Проверить сервис
Отображение расширенной информации о службе, включая конфигурацию балансировщика нагрузки, активные развертывания и переменные среды.
Развертывания показывают активные версии вашей службы, которые работают. Несколько развертываний отображаются, если служба переходит из-за развертывания или обновления конфигурации, такой как переменные ЦП, памяти или среды.
fargate service logs <service-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
Показать журналы задач в сервисе
Возвращайте либо определенный сегмент журналов службы, либо хвостовые журналы в режиме реального времени, используя опцию --follow. Журналы имеют префикс имени потока журналов в формате «fargate/<имя-службы>/<идентификатор-задачи>».
Follow будет продолжать работать и возвращать журналы, пока не будет прерван Control-C. Если передан параметр --follow, параметр --end не может быть указан.
Журналы можно вернуть для определенных задач внутри службы, передав идентификатор задачи через флаг --task. Передайте --task с идентификатором задачи несколько раз, чтобы получить журналы нескольких конкретных задач.
Определенное окно журналов можно запросить, передав параметры --start и --end с выражением времени. Выражение времени может быть либо продолжительностью, либо меткой времени:
Вы можете фильтровать журналы по определенному термину, передав выражение фильтра с помощью флага --filter. Передайте один термин для поиска этого термина или несколько терминов для поиска сообщений журнала, включающих все термины. Дополнительные сведения см. в документации CloudWatch Logs.
fargate service ps <service-name>
Список запущенных задач для службы
fargate service scale <service-name> <scale-expression>
Масштабируйте количество задач в сервисе
Изменяет количество желаемых задач, которые необходимо выполнить в службе, в соответствии с заданным выражением масштаба. Выражение масштаба может быть либо абсолютным числом, либо дельтой, заданной знаком, например +5 или -2.
fargate service env set <service-name> --env <key=value>
Установить переменные среды
По крайней мере одна переменная среды должна быть указана с помощью флага --env. Укажите --env с параметром key=value несколько раз, чтобы добавить несколько переменных.
fargate service env unset <service-name> --key <key-name>
Сбросить переменные среды
Сбрасывает переменную среды, указанную с помощью флага --key. Укажите --key с именем ключа несколько раз, чтобы отменить установку нескольких переменных.
fargate service env list <service-name>
Показать переменные среды
fargate service update <service-name> [--cpu <cpu-units>] [--memory <MiB>]
Обновить конфигурацию службы
Настройки ЦП и памяти указываются в единицах ЦП и мебибайтах соответственно с использованием флагов --cpu и --memory. Каждые 1024 модуля ЦП эквивалентны одному виртуальному ЦП. AWS Fargate поддерживает только определенные комбинации конфигураций ЦП и памяти:
ЦП (ЦП) | Память (МиБ) |
---|---|
256 | 512, 1024 или 2048 |
512 | От 1024 до 4096 с шагом 1 ГиБ. |
1024 | От 2048 до 8192 с шагом 1 ГиБ. |
2048 | От 4096 до 16384 с шагом 1 ГиБ. |
4096 | От 8192 до 30720 с шагом 1 ГиБ. |
Должен быть указан хотя бы один из --cpu или --memory.
fargate service restart <service-name>
Перезапустить службу
Создает новый набор задач для службы и останавливает выполнение предыдущих задач. Это полезно, например, если вашему сервису необходимо перезагрузить данные, кэшированные из внешнего источника.
fargate service destroy <service-name>
Уничтожить сервис
Чтобы уничтожить службу, ее сначала необходимо масштабировать до 0 запущенных задач.
Балансировщики нагрузки распределяют входящий трафик между задачами внутри службы для приложений HTTP/HTTPS и TCP. Балансировщики нагрузки HTTP/HTTPS могут маршрутизировать нагрузку к нескольким службам на основе правил, которые вы указываете при создании новой службы.
fargate lb list
Получение списка балансировщиков нагрузки
fargate lb create <load-balancer-name> --port <port-expression> [--certificate <certificate-name>]
[--subnet-id <subnet-id>] [--security-group-id <security-group-id>]
[--scheme <lb-scheme>]
Создайте балансировщик нагрузки
Для прослушивателя балансировщика нагрузки должен быть указан хотя бы один порт с помощью флага --port и выражения порта протокол:номер-порта. Например, если вы хотите, чтобы балансировщик нагрузки HTTP прослушивал порт 80, вам следует указать HTTP:80. Допустимые протоколы: HTTP, HTTPS и TCP. Вы можете указать несколько прослушивателей, передав флаг --port с выражением порта несколько раз. Вы не можете смешивать порты TCP с портами HTTP/HTTPS на одном балансировщике нагрузки.
При желании вы можете включить сертификаты для защиты портов HTTPS, передав флаг --certificate вместе с именем сертификата. Этот параметр можно указать несколько раз, чтобы добавить дополнительные сертификаты к одному балансировщику нагрузки, который использует идентификацию имени службы (SNI) для выбора соответствующего сертификата для запроса.
По умолчанию балансировщик нагрузки будет создан в VPC по умолчанию и подключен к подсетям VPC по умолчанию для каждой зоны доступности. Вы можете переопределить это, указав явные подсети, передав флаг --subnet-id с идентификатором подсети. Для балансировщиков нагрузки HTTP/HTTPS требуется как минимум две подключенные подсети, тогда как для балансировщика нагрузки TCP требуется только одна. Вы можете указать только одну подсеть для каждой зоны доступности.
Группы безопасности можно дополнительно указать для балансировщиков нагрузки HTTP/HTTPS, передав флаг --security-group-id с идентификатором группы безопасности. Чтобы добавить несколько групп безопасности, передайте --security-group-id с идентификатором группы безопасности несколько раз. Если параметр --security-group-id опущен, к балансировщику нагрузки будет применена разрешительная группа безопасности.
Вы также можете выбрать тип схемы для балансировщика нагрузки с помощью флага --scheme. По умолчанию балансировщики нагрузки подключены к Интернету.
fargate lb destroy <load-balancer-name>
Уничтожить балансировщик нагрузки
fargate lb alias <load-balancer-name> <hostname>
Создайте запись псевдонима балансировщика нагрузки.
Создайте запись псевдонима для балансировщика нагрузки для доменов, размещенных на Amazon Route 53 и в одной учетной записи AWS. Если вы используете другого поставщика DNS или размещаете свои домены в другой учетной записи, вам нужно будет вручную создать эту запись.
fargate lb info <load-balancer-name>
Проверьте балансировщик нагрузки
Возвращает расширенную информацию о балансировщике нагрузки, включая список прослушивателей, правил и сертификатов, используемых балансировщиком нагрузки.
Сертификаты — это сертификаты TLS, выданные или импортированные в AWS Certificate Manager для использования в защите трафика между балансировщиками нагрузки и конечными пользователями. ACM бесплатно предоставляет сертификаты TLS для использования в ресурсах AWS.
fargate certificate list
Список сертификатов
fargate certificate import <domain-name> --certificate <filename> --key <filename> [--chain <filename>]
Импортировать сертификат
Загрузите сертификат из файла сертификата, файла закрытого ключа и, при необходимости, файла промежуточной цепочки сертификатов. Файлы должны быть закодированы с помощью PEM, а закрытый ключ не должен быть зашифрован или защищен парольной фразой. Дополнительную информацию см. в документации по AWS Certificate Manager.
fargate certificate request <domain-name> [--alias <domain-name>]
Запросить сертификат
Сертификаты могут быть для полного доменного имени (например, www.example.com) или доменного имени с подстановочным знаком (например, *.example.com). Вы можете добавить псевдонимы в сертификат, указав дополнительные доменные имена с помощью флага --alias. Чтобы добавить несколько псевдонимов, передайте --alias несколько раз. По умолчанию AWS Certificate Manager имеет ограничение в 10 доменных имен на сертификат, но это ограничение может быть увеличено службой поддержки AWS.
fargate certificate info <domain-name>
Проверить сертификат
Показать расширенную информацию о сертификате. Включает все проверки сертификата, в которых показаны записи DNS, которые необходимо создать для проверки владения доменом.
fargate certificate validate <domain-name>
Подтвердите право собственности на сертификат
Fargate автоматически создаст запись проверки DNS для подтверждения права собственности на любые доменные имена, размещенные на Amazon Route 53. Если в вашем сертификате есть псевдонимы, будет предпринята попытка создания записи проверки для каждого псевдонима. Любые записи, домены которых размещены у других поставщиков хостинга DNS или в других учетных записях DNS и не могут быть автоматически проверены, будут иметь необходимые выходные данные. Эти записи также доступны в fargate certificate info <domain-name>
.
AWS Certificate Manager может занять до нескольких часов после создания записей DNS для завершения проверки и выдачи сертификата.
fargate certificate destroy <domain-name>
Уничтожить сертификат
Чтобы уничтожить сертификат, он не должен использоваться никакими балансировщиками нагрузки или другими ресурсами AWS.