Το σωστό tagging των AWS πόρων είναι κρίσιμο για αποτελεσματική διαχείριση πόρων, κατανομή κόστους και auditing. Αν έχεις πολλά AWS Elastic Container Registry (ECR) repositories, το χειροκίνητο tagging μπορεί να είναι κουραστικό και επιρρεπές σε λάθη. Αυτό το άρθρο παρέχει μια απλή και αποτελεσματική λύση: αυτοματοποίηση του tagging των ECR repositories χρησιμοποιώντας Python και το AWS SDK for Python (Boto3).

Γιατί να Αυτοματοποιήσεις το Tagging;

Η αυτοματοποίηση του tagging εξοικονομεί χρόνο, διασφαλίζει συνέπεια και αποτρέπει δαπανηρά λάθη. Τα tags βοηθούν στην παρακολούθηση πόρων που σχετίζονται με συγκεκριμένα projects, environments ή cost centers.

Προαπαιτούμενα

  • Python 3 εγκατεστημένη
  • AWS CLI εγκατεστημένο και ρυθμισμένο
  • Βιβλιοθήκη Boto3 εγκατεστημένη (pip install boto3)
  • IAM permissions:
    • ecr:DescribeRepositories
    • ecr:ListTagsForResource
    • ecr:TagResource

Tagging AWS ECR Repositories με Python

Ορίστε ένα απλό Python script που χρησιμοποιεί Boto3 για να προσθέσει προκαθορισμένα tags σε όλα τα ECR repositories σου που δεν έχουν καθόλου tags.

Python Script

import boto3

AWS_REGION = ’eu-central-1’ # Replace with your region

Define your 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"Adding tags to repository '{repo_name}'")
            ecr_client.tag_resource(resourceArn=repo_arn, tags=TAGS_TO_APPLY)
        else:
            print(f"Repository '{repo_name}' already has tags. Skipping.")

if name == ‘main’: tag_ecr_repositories()

Το script θα σαρώσει αυτόματα τα ECR repositories σου και θα προσθέσει tags μόνο σε εκείνα που δεν έχουν καθόλου tags.

Οφέλη

  • Εξοικονομεί πολύτιμο διαχειριστικό χρόνο.
  • Διασφαλίζει συνέπεια σε όλο το AWS περιβάλλον σου.
  • Μειώνει τον κίνδυνο ανθρώπινου λάθους.

Συμπέρασμα

Η αυτοματοποίηση του tagging των AWS πόρων είναι μια βασική πρακτική για αποτελεσματική cloud διαχείριση. Η χρήση Python με Boto3 απλοποιεί σημαντικά αυτή την εργασία, διασφαλίζοντας ότι οι AWS πόροι σου παραμένουν οργανωμένοι και εύκολα διαχειρίσιμοι.