Exemples d'Amazon ECR utilisant AWS CLI - AWS Command Line Interface

Cette documentation concerne AWS CLI uniquement la version 1. Pour la documentation relative à la version 2 du AWS CLI, consultez le guide de l'utilisateur de la version 2.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples d'Amazon ECR utilisant AWS CLI

Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants à l' AWS Command Line Interface aide d'Amazon ECR.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code en contexte.

Rubriques

Actions

L'exemple de code suivant montre comment utiliserbatch-check-layer-availability.

AWS CLI

Pour vérifier la disponibilité d’une couche

L’exemple batch-check-layer-availability suivant vérifie la disponibilité d’une couche avec le résumé sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed dans le référentiel cluster-autoscaler.

aws ecr batch-check-layer-availability \ --repository-name cluster-autoscaler \ --layer-digests sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed

Sortie :

{ "layers": [ { "layerDigest": "sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed", "layerAvailability": "AVAILABLE", "layerSize": 2777, "mediaType": "application/vnd.docker.container.image.v1+json" } ], "failures": [] }

L'exemple de code suivant montre comment utiliserbatch-delete-image.

AWS CLI

Exemple 1 : pour supprimer une image

L’exemple batch-delete-image suivant supprime une image avec la balise precise dans le référentiel spécifié dans le registre par défaut d’un compte.

aws ecr batch-delete-image \ --repository-name ubuntu \ --image-ids imageTag=precise

Sortie :

{ "failures": [], "imageIds": [ { "imageTag": "precise", "imageDigest": "sha256:19665f1e6d1e504117a1743c0a3d3753086354a38375961f2e665416ef4b1b2f" } ] }

Exemple 2 : pour supprimer plusieurs images

L’exemple batch-delete-image suivant supprime toutes les images dotées des balises prod et team1 dans le référentiel spécifié.

aws ecr batch-delete-image \ --repository-name MyRepository \ --image-ids imageTag=prod imageTag=team1

Sortie :

{ "imageIds": [ { "imageDigest": "sha256:123456789012", "imageTag": "prod" }, { "imageDigest": "sha256:567890121234", "imageTag": "team1" } ], "failures": [] }

Pour plus d’informations, consultez Suppression d’une image dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous BatchDeleteImageà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserbatch-get-image.

AWS CLI

Exemple 1 : pour obtenir une image

L’exemple batch-get-image suivant obtient une image avec la balise v1.13.6 dans un référentiel appelé cluster-autoscaler dans le registre par défaut d’un compte.

aws ecr batch-get-image \ --repository-name cluster-autoscaler \ --image-ids imageTag=v1.13.6

Sortie :

{ "images": [ { "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "imageId": { "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTag": "v1.13.6" }, "imageManifest": "{\n \"schemaVersion\": 2,\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \"config\": {\n \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n \"size\": 2777,\n \"digest\": \"sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed\"\n },\n \"layers\": [\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 17743696,\n \"digest\": \"sha256:39fafc05754f195f134ca11ecdb1c9a691ab0848c697fffeb5a85f900caaf6e1\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 2565026,\n \"digest\": \"sha256:8c8a779d3a537b767ae1091fe6e00c2590afd16767aa6096d1b318d75494819f\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28005981,\n \"digest\": \"sha256:c44ba47496991c9982ee493b47fd25c252caabf2b4ae7dd679c9a27b6a3c8fb7\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 775,\n \"digest\": \"sha256:e2c388b44226544363ca007be7b896bcce1baebea04da23cbd165eac30be650f\"\n }\n ]\n}" } ], "failures": [] }

Exemple 2 : pour obtenir plusieurs images

L’exemple batch-get-image suivant affiche les détails de toutes les images dotées des balises prod et team1 dans le référentiel spécifié.

aws ecr batch-get-image \ --repository-name MyRepository \ --image-ids imageTag=prod imageTag=team1

Sortie :

{ "images": [ { "registryId": "123456789012", "repositoryName": "MyRepository", "imageId": { "imageDigest": "sha256:123456789012", "imageTag": "prod" }, "imageManifest": "manifestExample1" }, { "registryId": "567890121234", "repositoryName": "MyRepository", "imageId": { "imageDigest": "sha256:123456789012", "imageTag": "team1" }, "imageManifest": "manifestExample2" } ], "failures": [] }

Pour plus d’informations, consultez Images dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous BatchGetImageà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utilisercomplete-layer-upload.

AWS CLI

Pour terminer le téléchargement d’une couche d’image

L’exemple complete-layer-upload suivant termine le téléchargement d’une couche d’image vers le référentiel layer-test.

aws ecr complete-layer-upload \ --repository-name layer-test \ --upload-id 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9 \ --layer-digests 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9:48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323e

Sortie :

{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "layerDigest": "sha256:9a77f85878aa1906f2020a0ecdf7a7e962d57e882250acd773383224b3fe9a02", "repositoryName": "layer-test", "registryId": "130757420319" }
  • Pour plus de détails sur l'API, reportez-vous CompleteLayerUploadà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utilisercreate-repository.

AWS CLI

Exemple 1 : pour créer un référentiel

L’exemple create-repository suivant crée un référentiel dans l’espace de noms spécifié dans le registre par défaut d’un compte.

aws ecr create-repository \ --repository-name project-a/sample-repo

Sortie :

{ "repository": { "registryId": "123456789012", "repositoryName": "project-a/sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo" } }

Pour plus d’informations, consultez Création d’un référentiel dans le Guide de l’utilisateur Amazon ECR.

Exemple 2 : pour créer un référentiel configuré avec l’immuabilité des balises d’image

L’exemple create-repository suivant crée un référentiel configuré pour l’immuabilité des balises dans le registre par défaut d’un compte.

aws ecr create-repository \ --repository-name project-a/sample-repo \ --image-tag-mutability IMMUTABLE

Sortie :

{ "repository": { "registryId": "123456789012", "repositoryName": "project-a/sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo", "imageTagMutability": "IMMUTABLE" } }

Pour plus d’informations, consultez Caractère immuable des balises d’image dans le Guide de l’utilisateur Amazon ECR.

Exemple 3 : pour créer un référentiel configuré avec une configuration d’analyse

L’exemple create-repository suivant crée un référentiel configuré pour effectuer une analyse de vulnérabilité d’une transmission d’image dans le registre par défaut d’un compte.

aws ecr create-repository \ --repository-name project-a/sample-repo \ --image-scanning-configuration scanOnPush=true

Sortie :

{ "repository": { "registryId": "123456789012", "repositoryName": "project-a/sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo", "imageScanningConfiguration": { "scanOnPush": true } } }

Pour plus d’informations, consultez Numérisation d’images dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous CreateRepositoryà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-lifecycle-policy.

AWS CLI

Pour supprimer la politique de cycle de vie d’un référentiel

L’exemple delete-lifecycle-policy suivant supprime la politique de cycle de vie du référentiel hello-world.

aws ecr delete-lifecycle-policy \ --repository-name hello-world

Sortie :

{ "registryId": "012345678910", "repositoryName": "hello-world", "lifecyclePolicyText": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Remove untagged images.\",\"selection\":{\"tagStatus\":\"untagged\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":10},\"action\":{\"type\":\"expire\"}}]}", "lastEvaluatedAt": 0.0 }
  • Pour plus de détails sur l'API, reportez-vous DeleteLifecyclePolicyà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-repository-policy.

AWS CLI

Pour supprimer la politique de référentiel d’un référentiel

L’exemple delete-repository-policy suivant supprime la politique de référentiel du référentiel cluster-autoscaler.

aws ecr delete-repository-policy \ --repository-name cluster-autoscaler

Sortie :

{ "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" }
  • Pour plus de détails sur l'API, reportez-vous DeleteRepositoryPolicyà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-repository.

AWS CLI

Pour supprimer un référentiel

L’exemple de commande delete-repository suivant supprime le référentiel spécifié dans le registre par défaut d’un compte. L’indicateur --force est obligatoire si le référentiel contient des images.

aws ecr delete-repository \ --repository-name ubuntu \ --force

Sortie :

{ "repository": { "registryId": "123456789012", "repositoryName": "ubuntu", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/ubuntu" } }

Pour plus d’informations, consultez Suppression d’un référentiel dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous DeleteRepositoryà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-image-scan-findings.

AWS CLI

Pour décrire les résultats d’analyse d’une image

L’exemple describe-image-scan-findings suivant renvoie les résultats d’analyse d’une image à l’aide du résumé d’image du référentiel spécifié dans le registre par défaut d’un compte.

aws ecr describe-image-scan-findings \ --repository-name sample-repo \ --image-id imageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6

Sortie :

{ "imageScanFindings": { "findings": [ { "name": "CVE-2019-5188", "description": "A code execution vulnerability exists in the directory rehashing functionality of E2fsprogs e2fsck 1.45.4. A specially crafted ext4 directory can cause an out-of-bounds write on the stack, resulting in code execution. An attacker can corrupt a partition to trigger this vulnerability.", "uri": "http://people.ubuntu.com/~ubuntu-security/cve/CVE-2019-5188", "severity": "MEDIUM", "attributes": [ { "key": "package_version", "value": "1.44.1-1ubuntu1.1" }, { "key": "package_name", "value": "e2fsprogs" }, { "key": "CVSS2_VECTOR", "value": "AV:L/AC:L/Au:N/C:P/I:P/A:P" }, { "key": "CVSS2_SCORE", "value": "4.6" } ] } ], "imageScanCompletedAt": 1579839105.0, "vulnerabilitySourceUpdatedAt": 1579811117.0, "findingSeverityCounts": { "MEDIUM": 1 } }, "registryId": "123456789012", "repositoryName": "sample-repo", "imageId": { "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6" }, "imageScanStatus": { "status": "COMPLETE", "description": "The scan was completed successfully." } }

Pour plus d’informations, consultez Numérisation d’images dans le Guide de l’utilisateur Amazon ECR.

L'exemple de code suivant montre comment utiliserdescribe-images.

AWS CLI

Pour décrire une image dans un référentiel

L’exemple describe-images suivant affiche des informations sur une image dans le référentiel cluster-autoscaler avec la balise v1.13.6.

aws ecr describe-images \ --repository-name cluster-autoscaler \ --image-ids imageTag=v1.13.6

Sortie :

{ "imageDetails": [ { "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTags": [ "v1.13.6" ], "imageSizeInBytes": 48318255, "imagePushedAt": 1565128275.0 } ] }
  • Pour plus de détails sur l'API, reportez-vous DescribeImagesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-repositories.

AWS CLI

Pour décrire les référentiels dans un registre

Cet exemple décrit les référentiels du registre par défaut d’un compte.

Commande :

aws ecr describe-repositories

Sortie :

{ "repositories": [ { "registryId": "012345678910", "repositoryName": "ubuntu", "repositoryArn": "arn:aws:ecr:us-west-2:012345678910:repository/ubuntu" }, { "registryId": "012345678910", "repositoryName": "test", "repositoryArn": "arn:aws:ecr:us-west-2:012345678910:repository/test" } ] }
  • Pour plus de détails sur l'API, reportez-vous DescribeRepositoriesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserget-authorization-token.

AWS CLI

Pour obtenir un jeton d’autorisation pour votre registre par défaut

L’exemple de commande get-authorization-token suivant obtient un jeton d’autorisation pour votre registre par défaut.

aws ecr get-authorization-token

Sortie :

{ "authorizationData": [ { "authorizationToken": "QVdTOkN...", "expiresAt": 1448875853.241, "proxyEndpoint": "https://123456789012.dkr.ecr.us-west-2.amazonaws.com" } ] }
  • Pour plus de détails sur l'API, reportez-vous GetAuthorizationTokenà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserget-download-url-for-layer.

AWS CLI

Pour obtenir l’URL de téléchargement d’une couche

L’exemple get-download-url-for-layer suivant affiche l’URL de téléchargement d’une couche contenant le résumé sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed dans le référentielcluster-autoscaler.

aws ecr get-download-url-for-layer \ --repository-name cluster-autoscaler \ --layer-digest sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed

Sortie :

{ "downloadUrl": "https://prod-us-west-2-starport-layer-bucket.s3.us-west-2.amazonaws.com/e501-012345678910-9cb60dc0-7284-5643-3987-da6dac0465f0/04620aac-66a5-4167-8232-55ee7ef6d565?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20190814T220617Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=AKIA32P3D2JDNMVAJLGF%2F20190814%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=9161345894947a1672467a0da7a1550f2f7157318312fe4941b59976239c3337", "layerDigest": "sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed" }
  • Pour plus de détails sur l'API, reportez-vous GetDownloadUrlForLayerà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserget-lifecycle-policy-preview.

AWS CLI

Pour extraire des informations en vue d’un aperçu de la politique de cycle de vie

L’exemple get-lifecycle-policy-preview suivant extrait le résultat d’un aperçu de la politique de cycle de vie pour le référentiel spécifié dans le registre par défaut d’un compte.

Commande :

aws ecr get-lifecycle-policy-preview \ --repository-name "project-a/amazon-ecs-sample"

Sortie :

{ "registryId": "012345678910", "repositoryName": "project-a/amazon-ecs-sample", "lifecyclePolicyText": "{\n \"rules\": [\n {\n \"rulePriority\": 1,\n \"description\": \"Expire images older than 14 days\",\n \"selection\": {\n \"tagStatus\": \"untagged\",\n \"countType\": \"sinceImagePushed\",\n \"countUnit\": \"days\",\n \"countNumber\": 14\n },\n \"action\": {\n \"type\": \"expire\"\n }\n }\n ]\n}\n", "status": "COMPLETE", "previewResults": [], "summary": { "expiringImageTotalCount": 0 } }

Pour plus d’informations, consultez Politiques de cycle de vie dans le Guide de l’utilisateur Amazon ECR.

L'exemple de code suivant montre comment utiliserget-lifecycle-policy.

AWS CLI

Pour extraire une politique de cycle de vie

L’exemple get-lifecycle-policy suivant affiche les détails de la politique de cycle de vie du référentiel spécifié dans le registre par défaut du compte.

aws ecr get-lifecycle-policy \ --repository-name "project-a/amazon-ecs-sample"

Sortie :

{ "registryId": "123456789012", "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\"}}]}", "lastEvaluatedAt": 1504295007.0 }

Pour plus d’informations, consultez Politiques de cycle de vie dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous GetLifecyclePolicyà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserget-login-password.

AWS CLI

Pour récupérer un mot de passe afin de s’authentifier auprès d’un registre

get-login-password ci-dessous affiche un mot de passe que vous pouvez utiliser avec un client conteneur de votre choix pour vous authentifier auprès de tout registre Amazon ECR auquel votre principal IAM a accès.

aws ecr get-login-password

Sortie :

<password>

Pour l’utiliser avec l’interface de ligne de commande Docker, redirigez la sortie de la commande get-login-password vers la commande docker login. Lorsque vous extrayez le mot de passe, assurez-vous de spécifier la même région que celle dans laquelle se trouve votre registre Amazon ECR.

aws ecr get-login-password \ --region <region> \ | docker login \ --username AWS \ --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com

Pour plus d’informations, consultez Authentification de registre dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous GetLoginPasswordà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserget-login.

AWS CLI

Pour extraire une commande de connexion Docker dans votre registre par défaut

Cet exemple imprime une commande que vous pouvez utiliser pour vous connecter à votre registre Amazon ECR par défaut.

Commande :

aws ecr get-login

Sortie :

docker login -u AWS -p <password> -e none https://<aws_account_id>.dkr.ecr.<region>.amazonaws.com

Pour se connecter au registre d’un autre compte

Cet exemple affiche une ou plusieurs commandes que vous pouvez utiliser pour vous connecter aux registres Amazon ECR associés à d’autres comptes.

Commande :

aws ecr get-login --registry-ids 012345678910 023456789012

Sortie :

docker login -u <username> -p <token-1> -e none <endpoint-1> docker login -u <username> -p <token-2> -e none <endpoint-2>
  • Pour plus de détails sur l'API, reportez-vous GetLoginà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserget-repository-policy.

AWS CLI

Pou extraire la stratégie de référentiel pour un référentiel spécifié

L’exemple get-repository-policy suivant affiche des informations sur la politique de référentiel du référentiel cluster-autoscaler.

aws ecr get-repository-policy \ --repository-name cluster-autoscaler

Sortie :

{ "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" }
  • Pour plus de détails sur l'API, reportez-vous GetRepositoryPolicyà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserinitiate-layer-upload.

AWS CLI

Pour lancer le chargement d’une couche d’image

L’exemple initiate-layer-upload suivant lance le chargement d’une couche d’image vers le référentiel layer-test.

aws ecr initiate-layer-upload \ --repository-name layer-test

Sortie :

{ "partSize": 10485760, "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9" }
  • Pour plus de détails sur l'API, reportez-vous InitiateLayerUploadà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-images.

AWS CLI

Pour répertorier les images dans un référentiel

L’exemple list-images suivant affiche la liste des images du référentiel cluster-autoscaler.

aws ecr list-images \ --repository-name cluster-autoscaler

Sortie :

{ "imageIds": [ { "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", "imageTag": "v1.13.8" }, { "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", "imageTag": "v1.13.7" }, { "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTag": "v1.13.6" } ] }
  • Pour plus de détails sur l'API, reportez-vous ListImagesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-tags-for-resource.

AWS CLI

Pour répertorier les balises du référentiel

L’exemple list-tags-for-resource suivant affiche la liste des balises associées au référentiel hello-world.

aws ecr list-tags-for-resource \ --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world

Sortie :

{ "tags": [ { "Key": "Stage", "Value": "Integ" } ] }
  • Pour plus de détails sur l'API, reportez-vous ListTagsForResourceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserput-image-scanning-configuration.

AWS CLI

Pour mettre à jour la configuration de l’analyse d’image pour un référentiel

L’exemple put-image-scanning-configuration suivant met à jour la configuration de l’analyse d’image pour le référentiel spécifié.

aws ecr put-image-scanning-configuration \ --repository-name sample-repo \ --image-scanning-configuration scanOnPush=true

Sortie :

{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageScanningConfiguration": { "scanOnPush": true } }

Pour plus d’informations, consultez Numérisation d’images dans le Guide de l’utilisateur Amazon ECR.

L'exemple de code suivant montre comment utiliserput-image-tag-mutability.

AWS CLI

Pour mettre à jour les paramètres de mutabilité des balises d’image pour un référentiel

L’exemple put-image-tag-mutability suivant configure le référentiel spécifié pour l’immuabilité des balises. Il empêche toutes les balises d’image du référentiel d’être écrasées.

aws ecr put-image-tag-mutability \ --repository-name hello-repository \ --image-tag-mutability IMMUTABLE

Sortie :

{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageTagMutability": "IMMUTABLE" }

Pour plus d’informations, consultez Caractère immuable des balises d’image dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous PutImageTagMutabilityà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserput-image.

AWS CLI

Pour rebaliser une image avec son manifeste

L’exemple put-image suivant crée une nouvelle balise dans le référentiel hello-world avec un manifeste d’image existant.

aws ecr put-image \ --repository-name hello-world \ --image-tag 2019.08 \ --image-manifest file://hello-world.manifest.json

Contenu de hello-world.manifest.json :

{ "schemaVersion": 2, "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "config": { "mediaType": "application/vnd.docker.container.image.v1+json", "size": 5695, "digest": "sha256:cea5fe7701b7db3dd1c372f3cea6f43cdda444fcc488f530829145e426d8b980" }, "layers": [ { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 39096921, "digest": "sha256:d8868e50ac4c7104d2200d42f432b661b2da8c1e417ccfae217e6a1e04bb9295" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 57938, "digest": "sha256:83251ac64627fc331584f6c498b3aba5badc01574e2c70b2499af3af16630eed" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 423, "digest": "sha256:589bba2f1b36ae56f0152c246e2541c5aa604b058febfcf2be32e9a304fec610" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 680, "digest": "sha256:d62ecaceda3964b735cdd2af613d6bb136a52c1da0838b2ff4b4dab4212bcb1c" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 162, "digest": "sha256:6d93b41cfc6bf0d2522b7cf61588de4cd045065b36c52bd3aec2ba0622b2b22b" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 28268840, "digest": "sha256:6986b4d4c07932c680b3587f2eac8b0e013568c003cc23b04044628a5c5e599f" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 35369152, "digest": "sha256:8c5ec60f10102dc8da0649d866c7c2f706e459d0bdc25c83ad2de86f4996c276" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 155, "digest": "sha256:cde50b1c594539c5f67cbede9aef95c9ae321ccfb857f7b251b45b84198adc85" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 28737, "digest": "sha256:2e102807ab72a73fc9abf53e8c50e421bdc337a0a8afcb242176edeec65977e4" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 190, "digest": "sha256:fc379bbd5ed37808772bef016553a297356c59b8f134659e6ee4ecb563c2f5a7" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 28748, "digest": "sha256:021db240dfccf5a1aff19507d17c0177e5888e518acf295b52204b1825e8b7ee" } ] }

Sortie :

{ "image": { "registryId": "130757420319", "repositoryName": "hello-world", "imageId": { "imageDigest": "sha256:8ece96b74f87652876199d83bd107d0435a196133af383ac54cb82b6cc5283ae", "imageTag": "2019.08" }, "imageManifest": "{\n \"schemaVersion\": 2,\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \"config\": {\n \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n \"size\": 5695,\n \"digest\": \"sha256:cea5fe7701b7db3dd1c372f3cea6f43cdda444fcc488f530829145e426d8b980\"\n },\n \"layers\": [\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 39096921,\n \"digest\": \"sha256:d8868e50ac4c7104d2200d42f432b661b2da8c1e417ccfae217e6a1e04bb9295\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 57938,\n \"digest\": \"sha256:83251ac64627fc331584f6c498b3aba5badc01574e2c70b2499af3af16630eed\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 423,\n \"digest\": \"sha256:589bba2f1b36ae56f0152c246e2541c5aa604b058febfcf2be32e9a304fec610\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 680,\n \"digest\": \"sha256:d62ecaceda3964b735cdd2af613d6bb136a52c1da0838b2ff4b4dab4212bcb1c\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 162,\n \"digest\": \"sha256:6d93b41cfc6bf0d2522b7cf61588de4cd045065b36c52bd3aec2ba0622b2b22b\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28268840,\n \"digest\": \"sha256:6986b4d4c07932c680b3587f2eac8b0e013568c003cc23b04044628a5c5e599f\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 35369152,\n \"digest\": \"sha256:8c5ec60f10102dc8da0649d866c7c2f706e459d0bdc25c83ad2de86f4996c276\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 155,\n \"digest\": \"sha256:cde50b1c594539c5f67cbede9aef95c9ae321ccfb857f7b251b45b84198adc85\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28737,\n \"digest\": \"sha256:2e102807ab72a73fc9abf53e8c50e421bdc337a0a8afcb242176edeec65977e4\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 190,\n \"digest\": \"sha256:fc379bbd5ed37808772bef016553a297356c59b8f134659e6ee4ecb563c2f5a7\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28748,\n \"digest\": \"sha256:021db240dfccf5a1aff19507d17c0177e5888e518acf295b52204b1825e8b7ee\"\n }\n ]\n}\n" } }
  • Pour plus de détails sur l'API, reportez-vous PutImageà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserput-lifecycle-policy.

AWS CLI

Pour créer une politique de cycle de vie

L’exemple put-lifecycle-policy suivant crée une politique de cycle de vie pour le référentiel spécifié dans le registre par défaut d’un compte.

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

Contenu 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" } } ] }

Sortie :

{ "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\"}}]}" }

Pour plus d’informations, consultez Politiques de cycle de vie dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous PutLifeCyclePolicyà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserset-repository-policy.

AWS CLI

Pour définir la politique de référentiel d’un référentiel

L’exemple set-repository-policy suivant joint au référentiel cluster-autoscaler une politique de référentiel contenue dans un fichier.

aws ecr set-repository-policy \ --repository-name cluster-autoscaler \ --policy-text file://my-policy.json

Contenu de my-policy.json :

{ "Version":"2012-10-17", "Statement" : [ { "Sid" : "allow public pull", "Effect" : "Allow", "Principal" : "*", "Action" : [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

Sortie :

{ "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" }
  • Pour plus de détails sur l'API, reportez-vous SetRepositoryPolicyà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserstart-image-scan.

AWS CLI

Pour démarrer une analyse de vulnérabilité d’une image

L’exemple start-image-scan suivant lance une analyse d’image pour le résumé d’image et spécifiée par ce dernier dans le référentiel spécifié.

aws ecr start-image-scan \ --repository-name sample-repo \ --image-id imageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6

Sortie :

{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageId": { "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6" }, "imageScanStatus": { "status": "IN_PROGRESS" } }

Pour plus d’informations, consultez Numérisation d’images dans le Guide de l’utilisateur Amazon ECR.

  • Pour plus de détails sur l'API, reportez-vous StartImageScanà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserstart-lifecycle-policy-preview.

AWS CLI

Pour créer un aperçu d’une politique de cycle de vie

L’exemple start-lifecycle-policy-preview suivant crée un aperçu d’une politique de cycle de vie défini par un fichier JSON pour le référentiel spécifié.

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

Contenu 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" } } ] }

Sortie :

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

L'exemple de code suivant montre comment utilisertag-resource.

AWS CLI

Pour baliser un référentiel

L’exemple tag-resource suivant définit une balise avec une clé Stage et une valeur Integ sur le référentiel hello-world.

aws ecr tag-resource \ --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world \ --tags Key=Stage,Value=Integ

Cette commande ne produit aucune sortie.

  • Pour plus de détails sur l'API, reportez-vous TagResourceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliseruntag-resource.

AWS CLI

Pour supprimer une balise d’un référentiel

L’exemple untag-resource suivant supprime la balise dont la clé est Stage du référentiel hello-world.

aws ecr untag-resource \ --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world \ --tag-keys Stage

Cette commande ne produit aucune sortie.

  • Pour plus de détails sur l'API, reportez-vous UntagResourceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserupload-layer-part.

AWS CLI

Pour charger une partie de couche

upload-layer-part ci-dessous charge une partie de la couche d’image dans le référentiel layer-test.

aws ecr upload-layer-part \ --repository-name layer-test \ --upload-id 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9 \ --part-first-byte 0 \ --part-last-byte 8323314 \ --layer-part-blob file:///var/lib/docker/image/overlay2/layerdb/sha256/ff986b10a018b48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323e/layer.b64

Sortie :

{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "registryId": "012345678910", "lastByteReceived": 8323314, "repositoryName": "layer-test" }
  • Pour plus de détails sur l'API, reportez-vous UploadLayerPartà la section Référence des AWS CLI commandes.