Una corretta taggatura delle risorse AWS è fondamentale per una gestione efficiente delle risorse, l'allocazione dei costi e l'auditing. Se hai numerosi repository AWS Elastic Container Registry (ECR), la taggatura manuale può essere noiosa e soggetta a errori. Questo articolo fornisce una soluzione semplice ed efficace: automatizzare la taggatura dei repository ECR utilizzando Python e l'AWS SDK per Python (Boto3).

Perché Automatizzare la Taggatura?

Automatizzare la taggatura fa risparmiare tempo, garantisce coerenza e previene errori costosi. I tag aiutano a tracciare le risorse relative a progetti, ambienti o centri di costo specifici.

Prerequisiti

  • Python 3 installato
  • AWS CLI installato e configurato
  • Libreria Boto3 installata (pip install boto3)
  • Permessi IAM:
    • ecr:DescribeRepositories
    • ecr:ListTagsForResource
    • ecr:TagResource

Taggare i Repository AWS ECR con Python

Ecco un semplice script Python che utilizza Boto3 per aggiungere tag predefiniti a tutti i tuoi repository ECR che attualmente non hanno tag.

Script Python

import boto3

AWS_REGION = ’eu-central-1’ # Sostituisci con la tua regione

Definisci i tuoi tag

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"Aggiunta tag al repository '{repo_name}'")
            ecr_client.tag_resource(resourceArn=repo_arn, tags=TAGS_TO_APPLY)
        else:
            print(f"Il repository '{repo_name}' ha già dei tag. Saltato.")

if name == ‘main’: tag_ecr_repositories()

Lo script analizza automaticamente i tuoi repository ECR e aggiunge tag solo a quei repository che attualmente non ne hanno.

Vantaggi

  • Risparmia tempo amministrativo prezioso.
  • Garantisce coerenza in tutto l'ambiente AWS.
  • Riduce il rischio di errore umano.

Conclusione

Automatizzare la taggatura delle risorse AWS è una pratica essenziale per una gestione cloud efficace. Utilizzare Python con Boto3 semplifica notevolmente questo compito, garantendo che le tue risorse AWS rimangano organizzate e facilmente gestibili.