Como soluciono problemas de marcação para tarefas do Amazon ECS?

7 minuto de leitura
0

Quero solucionar problemas com as tags de tarefas do Amazon Elastic Container Service (Amazon ECS).

Resolução

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, certifique-se de que está usando a versão mais recente da AWS CLI.

Ao definir tags de tarefas com o Amazon ECS, você pode enfrentar os seguintes problemas:

  • Suas tags não são propagadas do serviço ou da tarefa de definição para as tarefas.
  • O formato do ARN e ID do recurso para suas tags está desatualizado.
  • Devido à falta de permissões ou restrições de tags do AWS Identity and Access Management (IAM), não é possível criar novos recursos do Amazon ECS ou adicionar tag a eles.
  • Não é possível visualizar as tags do Amazon ECS na Página de faturamento do console do Gerenciamento de Faturamento e Custos da AWS.

Use o parâmetro PropagateTags para propagar das definições de serviço ou tarefa para as tarefas

O parâmetro PropagateTags não é ativado por padrão. Para copiar tags da definição de tarefa ou serviço para a tarefa, ative PropagateTags. É possível copiar tags ao executar uma tarefa, criar um serviço ou atualizar um serviço.

Observação: nos comandos a seguir, substitua servicename pelo seu nome de serviço, clustername pelo seu nome de cluster e region pela sua região AWS. Também substitua taskdefinitionname pelo seu nome da definição de tarefa e taskdefinitionversion pela sua versão da definição de tarefa.

Para verificar se PropagateTags está ativado em um serviço específico, execute o seguinte comando describe-services:

aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].propagateTags' --output text

Para ativar a propagação de tags para uma nova tarefa independente, execute o seguinte comando run-task:

aws ecs run-task --cluster clustername --task-definition taskdefinitionname:taskdefinitionversion --launch-type FARGATE/EC2 --propagate-tags TASK_DEFINITION/SERVICE

Para ativar a propagação de tags para um novo serviço, execute o seguinte comando create-service:

aws ecs create-service --cluster clustername --service-name servicename --task-definition taskdefinitionname:taskdefinitionversion --desired-count 2 --launch-type FARGATE --platform-version LATEST --network-configuration "awsvpcConfiguration={subnets=[subnet-abcdef123],securityGroups=[sg-pqrst5678]}" --propagateTags TASK_DEFINITION/SERVICE

Para ativar a propagação de tags para um serviço existente, execute o seguinte comando update-service:

aws ecs update-service --cluster clustername --service servicename --propagate-tags SERVICE/TASK_DEFINITION --force-new-deployment

Também é possível usar o console do Amazon ECS para ativar a propagação de tags.

Conclua as etapas a seguir:

  1. Abra o console do Amazon ECS.
  2. Selecione a Região para seu recurso do Amazon ECS.
  3. No painel de navegação, escolha Definições de tarefa.
  4. Selecione a definição de tarefa na lista de recursos e, em seguida, escolha Ações.
  5. Escolha Criar serviço ou Executar tarefa.
  6. Em Configuração de marcação de tarefas, selecione Serviço ou Definições de tarefa.
    Observação: a opção padrão é Não propagar.

Para usar o AWS CloudFormation para configurar tags no Amazon ECS, você deve declarar o recurso AWS::ECS::Service. Para declarar o AWS::ECS::Service, use as propriedades EnableECSManagedTags e PropagateTags com o valor SERVICE ou TASK\ _DEFINITION.

Observação:

Use o formato ARN correto

Para marcar os recursos do Amazon ECS, você deve usar os novos formatos ARN e ID. Para migrar sua implantação Amazon ECS para o novo formato, consulte Como migrar sua implantação do Amazon ECS para o novo formato ARN e ID de recurso.

Observação: seus recursos existentes recebem o novo formato ARN somente após os recursos serem recriados.

Verifique se a entidade do IAM tem as permissões necessárias e verifique as restrições de tags

Todas as contas da AWS usam autorização de marcação. Para marcar os recursos do Amazon ECS ao criá-los, a entidade principal do IAM deve ter a permissão ecs:TagResource. As seguintes APIs do Amazon ECS também devem ter essa permissão:

  • CreateCapacityProvider
  • CreateCluster
  • CreateService
  • CreateTaskSet
  • RegisterContainerInstance
  • RegisterTaskDefinition
  • RunTask
  • StartTask

Se você não conseguir adicionar tags ao seu serviço Amazon ECS ou criar recursos, conclua as seguintes etapas para solucionar esse problema:

  1. Verifique os eventos do AWS CloudTrail para visualizar os eventos do TagResource.
  2. Analise os eventos para visualizar uma das seguintes mensagens de erro:
    “AccessDenied”
    -ou-
    “As tags não podem ser atualizadas no momento. Aguarde alguns minutos e tente novamente”
    Se você receber um dos erros anteriores, a entidade do IAM não tem as permissões ecs:TagResource.
  3. Use o console do IAM ou a AWS CLI para adicionar as permissões ecs:TagResource às entidades do IAM.
  4. Recrie o recurso ou adicione as tags ao cluster do Amazon ECS novamente.
  5. Confirme se suas tags do Amazon ECS estão de acordo com as restrições de tags.

Verifique se você tem um problema de gerenciamento de faturamento e custos

Se você não conseguir filtrar as tarefas do Amazon ECS por tags para verificar o custo, verifique se as tags necessárias estão nas tarefas do Amazon ECS. Execute o seguinte comando list-tags-for-resource:

aws ecs list-tags-for-resource --resource-arn value

Observação: substitua o valor pelo ARN da sua tarefa.

Para usar o console do Amazon ECS para verificar as tags nas tarefas do Amazon ECS, conclua as seguintes etapas:

  1. Abra o console do Amazon ECS.
  2. Selecione a Região para seu recurso do Amazon ECS.
  3. No painel de navegação, escolha um tipo de recurso, por exemplo, Clusters.
  4. Selecione seu recurso e, em seguida, escolha Tags para visualizar todas as tags existentes para esse recurso.

Para verificar as tags gerenciadas, você deve ativar as tags gerenciadas do Amazon ECS. Para verificar se as tags gerenciadas do Amazon ECS estão ativadas, execute o seguinte comando describe-services:

aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].enableECSManagedTags' --output text

Observação: substitua servicename pelo seu nome de serviço, clustername pelo seu nome de cluster e region pela sua região.

Na saída do comando, verifique se enableECSManagedTags está definido como true.

Para usar o console para ativar as tags gerenciadas pelo Amazon ECS, conclua as seguintes etapas:

  1. Abra o console do Amazon ECS.
  2. Selecione a Região para seu recurso do Amazon ECS.
  3. No painel de navegação, escolha Definições de tarefa.
  4. Selecione a definição de tarefa na lista de recursos e, em seguida, escolha Ações.
  5. Escolha Criar serviço ou Executar tarefa.
  6. Na Configuração de marcação de tarefas, escolha Habilitar tags gerenciadas pelo ECS.

Para usar a AWS CLI para ativar as tags gerenciadas pelo Amazon ECS, execute o comando update-service:

aws ecs update-service --cluster clustername --service servicename --enable-ecs-managed-tags --force-new-deployment

Observação: substitua clustername pelo seu nome de cluster e servicename pelo seu nome de serviço.

As tags que você usa para faturamento podem estar listadas, mesmo que você não as veja no Explorador de Custos da AWS. Para resolver esse problema, ative suas tags de alocação de custos no console do Gerenciamento de Faturamento e Custos.

**Observação:**Pode levar até 24 horas para que as tags sejam ativadas.

Informações relacionadas

Solução de problemas do Amazon ECS

Marcação de recursos do Amazon ECS

Conceder permissão para marcar recursos na criação

AWS OFICIAL
AWS OFICIALAtualizada há 2 meses