O taggeamento adequado dos recursos AWS e essencial para um gerenciamento eficiente de recursos, alocacao de custos e auditoria. Se voce possui muitos repositorios no AWS Elastic Container Registry (ECR), o taggeamento manual pode ser tedioso e propenso a erros. Este artigo fornece uma solucao simples e eficaz: automatizar o taggeamento de repositorios ECR usando Python e o AWS SDK para Python (Boto3).

Por que Automatizar o Taggeamento?

Automatizar o taggeamento economiza tempo, garante consistencia e evita erros custosos. As tags ajudam a rastrear recursos relacionados a projetos, ambientes ou centros de custo especificos.

Pre-requisitos

  • Python 3 instalado
  • AWS CLI instalada e configurada
  • Biblioteca Boto3 instalada (pip install boto3)
  • Permissoes IAM:
    • ecr:DescribeRepositories
    • ecr:ListTagsForResource
    • ecr:TagResource

Taggeando Repositorios AWS ECR com Python

Aqui esta um script Python direto usando Boto3 para adicionar tags predefinidas a todos os seus repositorios ECR que atualmente nao possuem tags.

Script Python

import boto3

AWS_REGION = ’eu-central-1’ # Substitua pela sua regiao

Defina suas tags

TAGS_TO_APPLY = [ {‘Key’: ‘provisioned’, ‘Value’: ‘manual’}, {‘Key’: ’environment’, ‘Value’: ‘dev’}, {‘Key’: ‘project’, ‘Value’: ‘Project_Name’}, ]

def tag_ecr_repositories(): ecr_client = boto3.client(’ecr’, region_name=AWS_REGION)

paginator = ecr_client.get_paginator('describe_repositories')
for page in paginator.paginate():
    for repo in page['repositories']:
        repo_arn = repo['repositoryArn']
        repo_name = repo['repositoryName']

        existing_tags = ecr_client.list_tags_for_resource(resourceArn=repo_arn).get('tags', [])

        if not existing_tags:
            print(f"Adicionando tags ao repositorio '{repo_name}'")
            ecr_client.tag_resource(resourceArn=repo_arn, tags=TAGS_TO_APPLY)
        else:
            print(f"Repositorio '{repo_name}' ja possui tags. Pulando.")

if name == ‘main’: tag_ecr_repositories()

O script percorre automaticamente seus repositorios ECR e adiciona tags apenas aos repositorios que atualmente nao possuem tags.

Beneficios

  • Economiza tempo administrativo valioso.
  • Garante consistencia em todo o seu ambiente AWS.
  • Reduz o risco de erro humano.

Conclusao

Automatizar o taggeamento de recursos AWS e uma pratica essencial para uma gestao eficaz da nuvem. Usar Python com Boto3 simplifica significativamente essa tarefa, garantindo que seus recursos AWS permanecam organizados e faceis de gerenciar.