ECRExemples Amazon utilisant AWS CLI - AWS Command Line Interface

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.

ECRExemples Amazon 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'AmazonECR.

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 montrent comment appeler des fonctions de service individuelles, vous pouvez les visualiser dans leur contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la façon de configurer et d'exécuter le 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'batch-check-layer-availabilityexemple suivant vérifie la disponibilité d'une couche avec le condensé sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed dans le cluster-autoscaler référentiel.

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'batch-delete-imageexemple suivant supprime une image avec le tag 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'batch-delete-imageexemple suivant supprime toutes les images étiquetées avec 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 Supprimer une image dans le guide de ECR l'utilisateur Amazon.

  • Pour API plus de détails, voir BatchDeleteImagela 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'batch-get-imageexemple suivant permet d'obtenir 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'batch-get-imageexemple suivant affiche les détails de toutes les images étiquetées avec 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 la section Images du guide de ECR l'utilisateur Amazon.

  • Pour API plus de détails, voir BatchGetImagela 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'images

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

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 API plus de détails, voir CompleteLayerUploadla 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'create-repositoryexemple suivant crée un dépôt 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 la section Création d'un référentiel dans le guide de ECR l'utilisateur Amazon.

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

L'create-repositoryexemple 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 la section Mutabilité des balises d'image dans le guide de ECR l'utilisateur Amazon.

Exemple 3 : pour créer un référentiel configuré avec une configuration de numérisation

L'create-repositoryexemple suivant crée un référentiel configuré pour effectuer une analyse de vulnérabilité lors du transfert 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 la section Numérisation d'images dans le guide de ECR l'utilisateur Amazon.

  • Pour API plus de détails, voir CreateRepositoryla 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'delete-lifecycle-policyexemple suivant supprime la politique de cycle de vie du hello-world référentiel.

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 }

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'delete-repository-policyexemple suivant supprime la politique de référentiel pour le cluster-autoscaler référentiel.

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

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

AWS CLI

Pour supprimer un référentiel

L'delete-repositoryexemple de force de commande suivant supprime le référentiel spécifié dans le registre par défaut d'un compte. L'--forceindicateur 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 Supprimer un référentiel dans le guide de ECR l'utilisateur Amazon.

  • Pour API plus de détails, voir DeleteRepositoryla 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 de numérisation d'une image

L'describe-image-scan-findingsexemple suivant renvoie les résultats de numérisation d'une image à l'aide du condensé 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 la section Numérisation d'images dans le guide de ECR l'utilisateur Amazon.

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

AWS CLI

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

L'describe-imagesexemple suivant affiche les détails d'une image dans le cluster-autoscaler référentiel 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 API plus de détails, voir DescribeImagesla 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 d'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" } ] }

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'get-authorization-tokenexemple de commande suivant permet d'obtenir 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" } ] }

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

AWS CLI

Pour télécharger URL une couche

L'get-download-url-for-layerexemple suivant montre le téléchargement URL d'une couche contenant le condensé sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed dans le cluster-autoscaler référentiel.

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

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

AWS CLI

Pour récupérer les détails d'un aperçu de la politique de cycle de vie

L'get-lifecycle-policy-previewexemple 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 les politiques de cycle de vie dans le guide de ECR l'utilisateur Amazon.

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

AWS CLI

Pour récupérer une politique de cycle de vie

L'get-lifecycle-policyexemple 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 les politiques de cycle de vie dans le guide de ECR l'utilisateur Amazon.

  • Pour API plus de détails, voir GetLifecyclePolicyla 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

Ce qui suit get-login-password affiche un mot de passe que vous pouvez utiliser avec le client conteneur de votre choix pour vous authentifier auprès de n'importe quel ECR registre Amazon auquel votre IAM principal a accès.

aws ecr get-login-password

Sortie :

<password>

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

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 la section Authentification du registre dans le guide de ECR l'utilisateur Amazon.

  • Pour API plus de détails, voir GetLoginPasswordla section Référence des AWS CLI commandes.

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

AWS CLI

Pour récupérer une commande de connexion Docker dans votre registre par défaut

Cet exemple affiche une commande que vous pouvez utiliser pour vous connecter à votre ECR registre Amazon 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 vous connecter au registre d'un autre compte

Cet exemple affiche une ou plusieurs commandes que vous pouvez utiliser pour vous connecter aux ECR registres Amazon 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 API plus de détails, voir GetLoginla section Référence des AWS CLI commandes.

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

AWS CLI

Pour récupérer la politique de dépôt d'un référentiel

L'get-repository-policyexemple suivant affiche les détails de la politique de référentiel pour le cluster-autoscaler référentiel.

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 API plus de détails, voir GetRepositoryPolicyla section Référence des AWS CLI commandes.

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

AWS CLI

Pour lancer le téléchargement d'une couche d'image

L'initiate-layer-uploadexemple suivant lance le téléchargement d'une couche d'image vers le layer-test référentiel.

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

Sortie :

{ "partSize": 10485760, "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9" }
  • Pour API plus de détails, voir InitiateLayerUploadla section Référence des AWS CLI commandes.

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

AWS CLI

Pour répertorier les images d'un référentiel

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

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 API plus de détails, voir ListImagesla 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'list-tags-for-resourceexemple suivant affiche la liste des balises associées au hello-world référentiel.

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 API plus de détails, voir ListTagsForResourcela 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 numérisation d'images pour un référentiel

L'put-image-scanning-configurationexemple suivant met à jour la configuration de numérisation d'images 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 la section Numérisation d'images dans le guide de ECR l'utilisateur Amazon.

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

AWS CLI

Pour mettre à jour le paramètre de mutabilité des balises d'image pour un référentiel

L'put-image-tag-mutabilityexemple suivant configure le référentiel spécifié pour l'immuabilité des balises. Cela empêche le remplacement de toutes les balises d'image du référentiel.

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 la section Mutabilité des balises d'image dans le guide de ECR l'utilisateur Amazon.

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

AWS CLI

Pour réétiqueter une image avec son manifeste

L'put-imageexemple suivant crée une nouvelle balise dans le hello-world référentiel 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 API plus de détails, voir PutImagela 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'put-lifecycle-policyexemple 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 les politiques de cycle de vie dans le guide de ECR l'utilisateur Amazon.

  • Pour API plus de détails, voir PutLifecyclePolicyla 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 dépôt d'un référentiel

L'set-repository-policyexemple suivant joint au référentiel une politique de cluster-autoscaler 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" : "2008-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 API plus de détails, voir SetRepositoryPolicyla 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'start-image-scanexemple suivant lance une numérisation d'image pour et spécifiée par le condensé d'image 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 la section Numérisation d'images dans le guide de ECR l'utilisateur Amazon.

  • Pour API plus de détails, voir StartImageScanla 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 de la politique de cycle de vie

L'start-lifecycle-policy-previewexemple suivant crée un aperçu de la politique de cycle de vie défini par un JSON fichier 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 étiqueter un dépôt

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

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 aucun résultat.

  • Pour API plus de détails, voir TagResourcela section Référence des AWS CLI commandes.

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

AWS CLI

Pour supprimer le balisage d'un dépôt

L'untag-resourceexemple suivant supprime la balise contenant la clé Stage du hello-world référentiel.

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

Cette commande ne produit aucun résultat.

  • Pour API plus de détails, voir UntagResourcela section Référence des AWS CLI commandes.

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

AWS CLI

Pour télécharger une partie de couche

Ce qui suit upload-layer-part télécharge une partie de la couche d'image dans le layer-test référentiel.

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 API plus de détails, voir UploadLayerPartla section Référence des AWS CLI commandes.