Uso de PutLifeCyclePolicy con un SDK de AWS o la CLI - Ejemplos de código de AWS SDK

Hay más ejemplos de AWS SDK disponibles en el repositorio de GitHub de ejemplos de AWS SDK de documentos.

Uso de PutLifeCyclePolicy con un SDK de AWS o la CLI

Los siguientes ejemplos de código muestran cómo utilizar PutLifeCyclePolicy.

CLI
AWS CLI

Para crear una política de ciclo de vida

En el siguiente ejemplo de put-lifecycle-policy,se crea una política de ciclo de vida para el repositorio especificado en el registro predeterminado de una cuenta.

aws ecr put-lifecycle-policy \ --repository-name "project-a/amazon-ecs-sample" \ --lifecycle-policy-text "file://policy.json"

Contenido de policy.json:

{ "rules": [ { "rulePriority": 1, "description": "Expire images older than 14 days", "selection": { "tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 14 }, "action": { "type": "expire" } } ] }

Salida:

{ "registryId": "<aws_account_id>", "repositoryName": "project-a/amazon-ecs-sample", "lifecyclePolicyText": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Expire images older than 14 days\",\"selection\":{\"tagStatus\":\"untagged\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":14},\"action\":{\"type\":\"expire\"}}]}" }

Para obtener más información, consulte Lifecycle Policies en la Guía del usuario de Amazon ECR.

  • Para obtener información sobre la API, consulte PutLifeCyclePolicy en la Referencia de comandos de la AWS CLI.

Python
SDK para Python (Boto3)
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

class ECRWrapper: def __init__(self, ecr_client: client): self.ecr_client = ecr_client @classmethod def from_client(cls) -> "ECRWrapper": """ Creates a ECRWrapper instance with a default Amazon ECR client. :return: An instance of ECRWrapper initialized with the default Amazon ECR client. """ ecr_client = boto3.client("ecr") return cls(ecr_client) def put_lifecycle_policy(self, repository_name: str, lifecycle_policy_text: str): """ Puts a lifecycle policy for an ECR repository. :param repository_name: The name of the repository to put the lifecycle policy for. :param lifecycle_policy_text: The lifecycle policy text to put. """ try: self.ecr_client.put_lifecycle_policy( repositoryName=repository_name, lifecyclePolicyText=lifecycle_policy_text, ) print(f"Put lifecycle policy for repository {repository_name}.") except ClientError as err: logger.error( "Couldn't put lifecycle policy for repository %s. Here's why %s", repository_name, err.response["Error"]["Message"], ) raise

Ejemplo que aplica una política de fecha de caducidad.

def put_expiration_policy(self): """ Puts an expiration policy on the ECR repository. """ policy_json = { "rules": [ { "rulePriority": 1, "description": "Expire images older than 14 days", "selection": { "tagStatus": "any", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 14, }, "action": {"type": "expire"}, } ] } self.ecr_wrapper.put_lifecycle_policy( self.repository_name, json.dumps(policy_json) )
  • Para obtener información sobre la API, consulte PutLifeCyclePolicy en la Referencia de la API de AWS SDK para Python (Boto3).