❗ ❗ ❗ Observe que este projeto não é mais mantido ativamente. Uma opção melhor para novas implantações do Fargate na AWS é o AWS Copilot CLI, que tem mais recursos e é mantido ativamente pela AWS. ❗ ❗ ❗
Por padrão, o fargate usa us-east-1 . A CLI aceita um parâmetro --region e respeitará as configurações de ambiente AWS_REGION e AWS_DEFAULT_REGION . Observe que especificar uma região onde todos os serviços necessários não estejam disponíveis retornará um erro.
Consulte a Tabela de Regiões para ver quais serviços estão disponíveis em quais regiões.
fargate é criado usando o AWS SDK for Go, que procura credenciais nos seguintes locais:
Variáveis de ambiente
Arquivo de credenciais compartilhadas
Perfil de instância EC2
Para obter mais informações, consulte Especificar credenciais na documentação do AWS SDK for Go.
Bandeira | Padrão | Descrição |
---|---|---|
--conjunto | fargate | Nome do cluster ECS |
--região | nós-leste-1 | Região AWS |
--sem cor | falso | Desativar saída colorida |
--verbose | falso | Saída detalhada |
As tarefas são execuções únicas do seu contêiner. As instâncias da sua tarefa são executadas até que você as interrompa manualmente por meio das APIs da AWS, do Console de gerenciamento da AWS ou fargate task stop
ou até que sejam interrompidas por qualquer motivo.
fargate task list
Listar grupos de tarefas em execução
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>]
Execute novas tarefas
Você deve especificar um nome de grupo de tarefas para interagir com as tarefas em comandos subsequentes para visualizar logs, parar e inspecionar tarefas. Os nomes dos grupos de tarefas não precisam ser exclusivos – diversas configurações de instâncias de tarefas podem ser iniciadas com o mesmo grupo de tarefas.
Várias instâncias de uma tarefa podem ser executadas especificando um número no sinalizador --num. Se nenhum número for especificado, uma única instância de tarefa será executada.
As configurações de CPU e memória podem ser especificadas opcionalmente como unidades de CPU e mebibytes, respectivamente, usando os sinalizadores --cpu e --memory. Cada 1.024 unidades de CPU equivalem a uma única vCPU. O AWS Fargate oferece suporte apenas a determinadas combinações de configurações de CPU e memória:
CPU (unidades de CPU) | Memória (MiB) |
---|---|
256 | 512, 1024 ou 2048 |
512 | 1.024 a 4.096 em incrementos de 1 GiB |
1024 | 2048 a 8192 em incrementos de 1GiB |
2048 | 4096 a 16384 em incrementos de 1GiB |
4096 | 8192 a 30720 em incrementos de 1GiB |
Se não for especificado, o fargate iniciará tarefas de tamanho mínimo com 0,25 vCPU (256 unidades de CPU) e 0,5 GB (512 MiB) de memória.
A imagem do contêiner Docker a ser usada na tarefa pode ser especificada opcionalmente por meio do sinalizador --image. Se não for especificado, o fargate criará uma nova imagem de contêiner do Docker a partir do diretório de trabalho atual e a enviará ao Amazon ECR em um repositório nomeado para o grupo de tarefas. Se o diretório de trabalho atual for um repositório git, a imagem do contêiner será marcada com a referência curta do commit HEAD. Caso contrário, será usado um carimbo de data/hora no formato AAAAMMDDHHMMSS.
Variáveis de ambiente podem ser especificadas através do sinalizador --env. Especifique --env com um parâmetro key=value diversas vezes para adicionar diversas variáveis.
Opcionalmente, os grupos de segurança podem ser especificados para a tarefa, passando o sinalizador --security-group-id com um ID do grupo de segurança. Para adicionar vários grupos de segurança, passe --security-group-id com um ID de grupo de segurança várias vezes. Se --security-group-id for omitido, um grupo de segurança permissivo será aplicado à tarefa.
Por padrão, a tarefa será criada na VPC padrão e anexada às sub-redes da VPC padrão para cada zona de disponibilidade. Você pode substituir isso especificando sub-redes explícitas, passando o sinalizador --subnet-id com um ID de sub-rede.
Uma função de tarefa pode ser opcionalmente especificada por meio do sinalizador --task-role, fornecendo um ARN completo da função do IAM ou o nome de uma função do IAM. As tarefas poderão assumir esse papel.
fargate task info <task-group-name> [--task <task-id>]
Inspecionar tarefas
Mostra informações estendidas para cada tarefa em execução em um grupo de tarefas ou para tarefas específicas especificadas com o sinalizador --task. As informações incluem variáveis de ambiente que podem diferir entre tarefas em um grupo de tarefas. Para inspecionar várias tarefas específicas dentro de um grupo de tarefas específico --task com um ID de tarefa várias vezes.
fargate task ps <task-group-name>
Listar tarefas em execução
fargate task logs <task-group-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
Mostrar registros de tarefas
Retorne um segmento específico de logs de tarefas ou logs finais em tempo real usando a opção --follow. Os logs são prefixados pelo nome do fluxo de logs, que está no formato "fargate/<nome-do-grupo-tarefa>/<id-tarefa>".
Follow continuará a ser executado e retornará logs até ser interrompido por Control-C. Se --follow for passado --end não pode ser especificado.
Os logs podem ser retornados para tarefas específicas dentro de um grupo de tarefas, passando um ID de tarefa por meio do sinalizador --task. Passe --task com um ID de tarefa várias vezes para recuperar logs de várias tarefas específicas.
Uma janela específica de logs pode ser solicitada passando as opções --start e --end com uma expressão de tempo. A expressão de tempo pode ser uma duração ou um carimbo de data/hora:
Você pode filtrar logs para termos específicos passando uma expressão de filtro por meio do sinalizador --filter. Passe um único termo para pesquisar esse termo, passe vários termos para pesquisar mensagens de log que incluam todos os termos. Consulte a documentação do CloudWatch Logs para obter mais detalhes.
fargate task stop <task-group-name> [--task <task-id>]
Interromper tarefas
Interrompe todas as tarefas dentro de um grupo de tarefas se for executado apenas com um nome de grupo de tarefas ou interrompe tarefas individuais se uma ou mais tarefas forem passadas por meio do sinalizador --task. Especifique --task com um parâmetro de ID de tarefa diversas vezes para interromper diversas tarefas específicas.
Os serviços gerenciam instâncias de longa duração de seus contêineres executadas no AWS Fargate. Se o seu contêiner for encerrado por qualquer motivo, o agendador de serviço reiniciará seus contêineres e garantirá que seu serviço tenha o número desejado de tarefas em execução. Os serviços podem ser usados em conjunto com um balanceador de carga para distribuir o tráfego entre as tarefas do seu serviço.
fargate service list
Listar serviços
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>]
Crie um novo serviço
As configurações de CPU e memória podem ser especificadas opcionalmente como unidades de CPU e mebibytes, respectivamente, usando os sinalizadores --cpu e --memory. Cada 1.024 unidades de CPU equivalem a uma única vCPU. O AWS Fargate oferece suporte apenas a determinadas combinações de configurações de CPU e memória:
CPU (unidades de CPU) | Memória (MiB) |
---|---|
256 | 512, 1024 ou 2048 |
512 | 1.024 a 4.096 em incrementos de 1 GiB |
1024 | 2048 a 8192 em incrementos de 1GiB |
2048 | 4096 a 16384 em incrementos de 1GiB |
4096 | 8192 a 30720 em incrementos de 1GiB |
Se não for especificado, o fargate iniciará tarefas de tamanho mínimo com 0,25 vCPU (256 unidades de CPU) e 0,5 GB (512 MiB) de memória.
A imagem do contêiner Docker a ser usada no serviço pode ser especificada opcionalmente por meio do sinalizador --image. Se não for especificado, o fargate criará uma nova imagem de contêiner do Docker a partir do diretório de trabalho atual e a enviará ao Amazon ECR em um repositório nomeado para o grupo de tarefas. Se o diretório de trabalho atual for um repositório git, a imagem do contêiner será marcada com a referência curta do commit HEAD. Caso contrário, será usado um carimbo de data/hora no formato AAAAMMDDHHMMSS.
Para usar o serviço com um balanceador de carga, uma porta deve ser especificada quando o serviço for criado. Especifique uma porta passando o sinalizador --port e uma expressão de porta de protocol:port-number. Por exemplo, se o serviço escutar na porta 80 e usar HTTP, especifique HTTP:80. Os protocolos válidos são HTTP, HTTPS e TCP. Você só pode especificar uma única porta.
Opcionalmente, os serviços podem ser configurados para usar um balanceador de carga. Para colocar um balanceador de carga na frente de um serviço, passe o sinalizador --lb com o nome de um balanceador de carga. Se você especificar um balanceador de carga, também deverá especificar uma porta por meio do sinalizador --port para a qual o balanceador de carga deverá encaminhar solicitações. Opcionalmente, os Application Load Balancers podem ser configurados para rotear o tráfego HTTP/HTTPS para o serviço com base em uma regra. As regras são configuradas passando uma ou mais regras especificando o sinalizador --rule junto com uma expressão de regra. As expressões de regra estão no formato TYPE=VALUE. O tipo pode ser PATH ou HOST. PATH corresponde ao PATH da solicitação e HOST corresponde ao nome do host solicitado na solicitação HTTP. Os tipos PATH e HOST podem incluir até três caracteres curinga: * para corresponder a vários caracteres e ? para corresponder a um único caractere. Se as regras forem omitidas, o serviço será a ação padrão do balanceador de carga.
Variáveis de ambiente podem ser especificadas através do sinalizador --env. Especifique --env com um parâmetro key=value diversas vezes para adicionar diversas variáveis.
Especifique a contagem desejada de tarefas que o serviço deve manter passando o sinalizador --num com um número. Se você omitir esse sinalizador, o fargate configurará um serviço com um número desejado de tarefas de 1.
Opcionalmente, os grupos de segurança podem ser especificados para o serviço, passando o sinalizador --security-group-id com um ID de grupo de segurança. Para adicionar vários grupos de segurança, passe --security-group-id com um ID de grupo de segurança várias vezes. Se --security-group-id for omitido, um grupo de segurança permissivo será aplicado ao serviço.
Por padrão, o serviço será criado na VPC padrão e anexado às sub-redes da VPC padrão para cada zona de disponibilidade. Você pode substituir isso especificando sub-redes explícitas, passando o sinalizador --subnet-id com um ID de sub-rede.
Uma função de tarefa pode ser opcionalmente especificada por meio do sinalizador --task-role, fornecendo um ARN completo da função do IAM ou o nome de uma função do IAM. As tarefas executadas pelo serviço poderão assumir esta função.
fargate service deploy <service-name> [--image <docker-image>]
Implantar nova imagem no serviço
A imagem do contêiner Docker a ser usada no serviço pode ser especificada opcionalmente por meio do sinalizador --image. Se não for especificado, o fargate criará uma nova imagem de contêiner do Docker a partir do diretório de trabalho atual e a enviará ao Amazon ECR em um repositório nomeado para o grupo de tarefas. Se o diretório de trabalho atual for um repositório git, a imagem do contêiner será marcada com a referência curta do commit HEAD. Caso contrário, será usado um carimbo de data/hora no formato AAAAMMDDHHMMSS.
fargate service info <service-name>
Inspecionar serviço
Mostre informações estendidas de um serviço, incluindo configuração do balanceador de carga, implantações ativas e variáveis de ambiente.
As implantações mostram versões ativas do seu serviço em execução. Várias implantações serão mostradas se um serviço estiver em transição devido a uma implantação ou atualização de configuração, como CPU, memória ou variáveis de ambiente.
fargate service logs <service-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
Mostrar logs de tarefas em um serviço
Retorne um segmento específico de logs de serviço ou logs finais em tempo real usando a opção --follow. Os logs são prefixados pelo nome do fluxo de logs, que está no formato "fargate/<service-name>/<task-id>".
Follow continuará a ser executado e retornará logs até ser interrompido por Control-C. Se --follow for passado --end não pode ser especificado.
Os logs podem ser retornados para tarefas específicas dentro de um serviço, passando um ID de tarefa por meio do sinalizador --task. Passe --task com um ID de tarefa várias vezes para recuperar logs de várias tarefas específicas.
Uma janela específica de logs pode ser solicitada passando as opções --start e --end com uma expressão de tempo. A expressão de tempo pode ser uma duração ou um carimbo de data/hora:
Você pode filtrar logs para termos específicos passando uma expressão de filtro por meio do sinalizador --filter. Passe um único termo para pesquisar esse termo, passe vários termos para pesquisar mensagens de log que incluam todos os termos. Consulte a documentação do CloudWatch Logs para obter mais detalhes.
fargate service ps <service-name>
Listar tarefas em execução para um serviço
fargate service scale <service-name> <scale-expression>
Dimensionar o número de tarefas em um serviço
Altera o número de tarefas desejadas a serem executadas em um serviço pela expressão de escala fornecida. Uma expressão de escala pode ser um número absoluto ou um delta especificado com um sinal como +5 ou -2.
fargate service env set <service-name> --env <key=value>
Definir variáveis de ambiente
Pelo menos uma variável de ambiente deve ser especificada por meio do sinalizador --env. Especifique --env com um parâmetro key=value diversas vezes para adicionar diversas variáveis.
fargate service env unset <service-name> --key <key-name>
Variáveis de ambiente não definidas
Desativa a variável de ambiente especificada por meio do sinalizador --key. Especifique --key com um nome de chave várias vezes para remover a definição de múltiplas variáveis.
fargate service env list <service-name>
Mostrar variáveis de ambiente
fargate service update <service-name> [--cpu <cpu-units>] [--memory <MiB>]
Atualizar configuração do serviço
As configurações de CPU e memória são especificadas como unidades de CPU e mebibytes, respectivamente, usando os sinalizadores --cpu e --memory. Cada 1.024 unidades de CPU equivalem a uma única vCPU. O AWS Fargate oferece suporte apenas a determinadas combinações de configurações de CPU e memória:
CPU (unidades de CPU) | Memória (MiB) |
---|---|
256 | 512, 1024 ou 2048 |
512 | 1.024 a 4.096 em incrementos de 1 GiB |
1024 | 2048 a 8192 em incrementos de 1GiB |
2048 | 4096 a 16384 em incrementos de 1GiB |
4096 | 8192 a 30720 em incrementos de 1GiB |
Pelo menos um entre --cpu ou --memory deve ser especificado.
fargate service restart <service-name>
Reiniciar serviço
Cria um novo conjunto de tarefas para o serviço e interrompe as tarefas anteriores. Isto é útil se o seu serviço precisar recarregar dados armazenados em cache de uma fonte externa, por exemplo.
fargate service destroy <service-name>
Destruir serviço
Para destruir um serviço, ele deve primeiro ser escalonado para 0 tarefas em execução.
Os balanceadores de carga distribuem o tráfego de entrada entre as tarefas dentro de um serviço para aplicativos HTTP/HTTPS e TCP. Os balanceadores de carga HTTP/HTTPS podem rotear para vários serviços com base nas regras que você especifica ao criar um novo serviço.
fargate lb list
Listar balanceadores de carga
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>]
Crie um balanceador de carga
Pelo menos uma porta deve ser especificada para o ouvinte do balanceador de carga por meio do sinalizador --port e uma expressão de porta de protocol:port-number. Por exemplo, se você quiser que um balanceador de carga HTTP escute na porta 80, especifique HTTP:80. Os protocolos válidos são HTTP, HTTPS e TCP. Você pode especificar vários ouvintes passando o sinalizador --port com uma expressão de porta várias vezes. Não é possível misturar portas TCP com portas HTTP/HTTPS em um único balanceador de carga.
Opcionalmente, você pode incluir certificados para proteger portas HTTPS passando o sinalizador --certificate junto com um nome de certificado. Esta opção pode ser especificada diversas vezes para adicionar certificados adicionais a um único balanceador de carga que usa Service Name Identification (SNI) para selecionar o certificado apropriado para a solicitação.
Por padrão, o balanceador de carga será criado na VPC padrão e anexado às sub-redes da VPC padrão para cada zona de disponibilidade. Você pode substituir isso especificando sub-redes explícitas, passando o sinalizador --subnet-id com um ID de sub-rede. Os balanceadores de carga HTTP/HTTPS exigem pelo menos duas sub-redes anexadas, enquanto um balanceador de carga TCP requer apenas uma. Você só pode especificar uma única sub-rede de cada zona de disponibilidade.
Opcionalmente, os grupos de segurança podem ser especificados para balanceadores de carga HTTP/HTTPS, passando o sinalizador --security-group-id com um ID do grupo de segurança. Para adicionar vários grupos de segurança, passe --security-group-id com um ID de grupo de segurança várias vezes. Se --security-group-id for omitido, um grupo de segurança permissivo será aplicado ao balanceador de carga.
Você também pode escolher o tipo de esquema para o balanceador de carga por meio do sinalizador --scheme. Por padrão, os balanceadores de carga são voltados para a Internet.
fargate lb destroy <load-balancer-name>
Destruir balanceador de carga
fargate lb alias <load-balancer-name> <hostname>
Criar um registro de alias do balanceador de carga
Crie um registro de alias para o balanceador de carga para domínios hospedados no Amazon Route 53 e na mesma conta da AWS. Se estiver usando outro provedor de DNS ou hospedando seus domínios em uma conta diferente, você precisará criar esse registro manualmente.
fargate lb info <load-balancer-name>
Inspecione o balanceador de carga
Retorna informações estendidas sobre um balanceador de carga, incluindo uma lista de ouvintes, regras e certificados em uso pelo balanceador de carga.
Certificados são certificados TLS emitidos ou importados para o AWS Certificate Manager para uso na proteção do tráfego entre balanceadores de carga e usuários finais. ACM fornece certificados TLS gratuitamente para uso nos recursos da AWS.
fargate certificate list
Listar certificados
fargate certificate import <domain-name> --certificate <filename> --key <filename> [--chain <filename>]
Importar um certificado
Carregue um certificado de um arquivo de certificado, um arquivo de chave privada e, opcionalmente, um arquivo de cadeia de certificados intermediário. Os arquivos devem ser codificados em PEM e a chave privada não deve ser criptografada ou protegida por uma senha longa. Consulte a documentação do AWS Certificate Manager para obter mais detalhes.
fargate certificate request <domain-name> [--alias <domain-name>]
Solicite um certificado
Os certificados podem ser para um nome de domínio totalmente qualificado (por exemplo, www.example.com) ou um nome de domínio curinga (por exemplo, *.example.com). Você pode adicionar aliases a um certificado especificando nomes de domínio adicionais por meio do sinalizador --alias. Para adicionar vários aliases, passe --alias várias vezes. Por padrão, o AWS Certificate Manager tem um limite de 10 nomes de domínio por certificado, mas esse limite pode ser aumentado pelo suporte da AWS.
fargate certificate info <domain-name>
Inspecionar certificado
Mostrar informações estendidas para um certificado. Inclui cada validação do certificado que mostra os registros DNS que devem ser criados para validar a propriedade do domínio.
fargate certificate validate <domain-name>
Validar propriedade do certificado
O fargate criará automaticamente um registro de validação de DNS para verificar a propriedade de quaisquer nomes de domínio hospedados no Amazon Route 53. Se o seu certificado tiver aliases, um registro de validação será tentado por alias. Quaisquer registros cujos domínios estejam hospedados em outros provedores de hospedagem DNS ou em outras contas DNS e não possam ser validados automaticamente terão a saída de registros necessária. Esses registros também estão disponíveis em fargate certificate info <domain-name>
.
O AWS Certificate Manager pode levar várias horas após a criação dos registros DNS para concluir a validação e emitir o certificado.
fargate certificate destroy <domain-name>
Destruir certificado
Para destruir um certificado, ele não deve estar em uso por nenhum balanceador de carga ou qualquer outro recurso da AWS.