Exemples d’utilisation de l’AWS CLI avec Amazon ECR
Les exemples de code suivants montrent comment réaliser des actions et mettre en œuvre des scénarios courants en utilisant l’AWS Command Line Interface avec 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 utiliser batch-check-layer-availability.
- AWS CLI
-
Pour vérifier la disponibilité d’une couche
L’exemple
batch-check-layer-availabilitysuivant vérifie la disponibilité d’une couche avec le résumésha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834eddans le référentielcluster-autoscaler.aws ecr batch-check-layer-availability \ --repository-namecluster-autoscaler\ --layer-digestssha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834edSortie :
{ "layers": [ { "layerDigest": "sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed", "layerAvailability": "AVAILABLE", "layerSize": 2777, "mediaType": "application/vnd.docker.container.image.v1+json" } ], "failures": [] }-
Pour plus de détails sur l’API, consultez BatchCheckLayerAvailability
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser batch-delete-image.
- AWS CLI
-
Exemple 1 : pour supprimer une image
L’exemple
batch-delete-imagesuivant supprime une image avec la baliseprecisedans le référentiel spécifié dans le registre par défaut d’un compte.aws ecr batch-delete-image \ --repository-nameubuntu\ --image-idsimageTag=preciseSortie :
{ "failures": [], "imageIds": [ { "imageTag": "precise", "imageDigest": "sha256:19665f1e6d1e504117a1743c0a3d3753086354a38375961f2e665416ef4b1b2f" } ] }Exemple 2 : pour supprimer plusieurs images
L’exemple
batch-delete-imagesuivant supprime toutes les images dotées des balisesprodetteam1dans le référentiel spécifié.aws ecr batch-delete-image \ --repository-nameMyRepository\ --image-idsimageTag=prodimageTag=team1Sortie :
{ "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, consultez BatchDeleteImage
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser batch-get-image.
- AWS CLI
-
Exemple 1 : pour obtenir une image
L’exemple
batch-get-imagesuivant obtient une image avec la balisev1.13.6dans un référentiel appelécluster-autoscalerdans le registre par défaut d’un compte.aws ecr batch-get-image \ --repository-namecluster-autoscaler\ --image-idsimageTag=v1.13.6Sortie :
{ "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-imagesuivant affiche les détails de toutes les images dotées des balisesprodetteam1dans le référentiel spécifié.aws ecr batch-get-image \ --repository-nameMyRepository\ --image-idsimageTag=prodimageTag=team1Sortie :
{ "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, consultez BatchGetImage
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser complete-layer-upload.
- AWS CLI
-
Pour terminer le chargement d’une couche d’image
L’exemple
complete-layer-uploadsuivant termine le chargement d’une couche d’image vers le référentiellayer-test.aws ecr complete-layer-upload \ --repository-namelayer-test\ --upload-id6cb64b8a-9378-0e33-2ab1-b780fab8a9e9\ --layer-digests6cb64b8a-9378-0e33-2ab1-b780fab8a9e9:48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323eSortie :
{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "layerDigest": "sha256:9a77f85878aa1906f2020a0ecdf7a7e962d57e882250acd773383224b3fe9a02", "repositoryName": "layer-test", "registryId": "130757420319" }-
Pour plus de détails sur l’API, consultez CompleteLayerUpload
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser create-repository.
- AWS CLI
-
Exemple 1 : pour créer un référentiel
L’exemple
create-repositorysuivant 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-nameproject-a/sample-repoSortie :
{ "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-repositorysuivant 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-nameproject-a/sample-repo\ --image-tag-mutabilityIMMUTABLESortie :
{ "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-repositorysuivant crée un référentiel configuré pour effectuer une analyse de vulnérabilité d’un transfert d’image dans le registre par défaut d’un compte.aws ecr create-repository \ --repository-nameproject-a/sample-repo\ --image-scanning-configurationscanOnPush=trueSortie :
{ "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, consultez CreateRepository
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser delete-lifecycle-policy.
- AWS CLI
-
Pour supprimer la politique de cycle de vie d’un référentiel
L’exemple
delete-lifecycle-policysuivant supprime la politique de cycle de vie du référentielhello-world.aws ecr delete-lifecycle-policy \ --repository-namehello-worldSortie :
{ "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, consultez DeleteLifecyclePolicy
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser delete-repository-policy.
- AWS CLI
-
Pour supprimer la politique d’un référentiel
L’exemple
delete-repository-policysuivant supprime la politique du référentielcluster-autoscaler.aws ecr delete-repository-policy \ --repository-namecluster-autoscalerSortie :
{ "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, consultez DeleteRepositoryPolicy
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser delete-repository.
- AWS CLI
-
Pour supprimer un référentiel
L’exemple de commande
delete-repositorysuivant supprime le référentiel spécifié dans le registre par défaut d’un compte. L’indicateur--forceest obligatoire si le référentiel contient des images.aws ecr delete-repository \ --repository-nameubuntu\ --forceSortie :
{ "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, consultez DeleteRepository
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser describe-image-scan-findings.
- AWS CLI
-
Pour décrire les résultats d’analyse d’une image
L’exemple
describe-image-scan-findingssuivant 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-namesample-repo\ --image-idimageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6Sortie :
{ "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.
-
Pour plus de détails sur l’API, consultez DescribeImageScanFindings
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser describe-images.
- AWS CLI
-
Pour décrire une image dans un référentiel
L’exemple
describe-imagessuivant affiche les informations sur une image dans le référentielcluster-autoscaleravec la balisev1.13.6.aws ecr describe-images \ --repository-namecluster-autoscaler\ --image-idsimageTag=v1.13.6Sortie :
{ "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, consultez DescribeImages
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser describe-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-repositoriesSortie :
{ "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, consultez DescribeRepositories
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser get-authorization-token.
- AWS CLI
-
Pour obtenir un jeton d’autorisation pour votre registre par défaut
L’exemple de commande
get-authorization-tokensuivant obtient un jeton d’autorisation pour votre registre par défaut.aws ecr get-authorization-tokenSortie :
{ "authorizationData": [ { "authorizationToken": "QVdTOkN...", "expiresAt": 1448875853.241, "proxyEndpoint": "https://123456789012.dkr.ecr.us-west-2.amazonaws.com" } ] }-
Pour plus de détails sur l’API, consultez GetAuthorizationToken
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser get-download-url-for-layer.
- AWS CLI
-
Pour obtenir l’URL de téléchargement d’une couche
L’exemple
get-download-url-for-layersuivant affiche l’URL de téléchargement d’une couche contenant le résumésha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834eddans le référentielcluster-autoscaler.aws ecr get-download-url-for-layer \ --repository-namecluster-autoscaler\ --layer-digestsha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834edSortie :
{ "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, consultez GetDownloadUrlForLayer
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser get-lifecycle-policy-preview.
- AWS CLI
-
Pour récupérer les informations sur un aperçu de la politique de cycle de vie
L’exemple
get-lifecycle-policy-previewsuivant récupère 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.
-
Pour plus de détails sur l’API, consultez GetLifecyclePolicyPreview
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser get-lifecycle-policy.
- AWS CLI
-
Pour récupérer une politique de cycle de vie
L’exemple
get-lifecycle-policysuivant 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, consultez GetLifecyclePolicy
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser get-login-password.
- AWS CLI
-
Pour récupérer un mot de passe afin de s’authentifier auprès d’un registre
L’exemple
get-login-passwordsuivant 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-passwordSortie :
<password>Pour l’utiliser avec l’interface de ligne de commande Docker, redirigez la sortie de la commande
get-login-passwordvers la commandedocker 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>\|dockerlogin\ --usernameAWS\ --password-stdin<aws_account_id>.dkr.ecr.<region>.amazonaws.com.rproxy.govskope.caPour plus d’informations, consultez Authentification de registre dans le Guide de l’utilisateur Amazon ECR.
-
Pour plus de détails sur l’API, consultez GetLoginPassword
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser get-login.
- AWS CLI
-
Pour récupérer 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-loginSortie :
docker login -u AWS -p <password> -e none https://<aws_account_id>.dkr.ecr.<region>.amazonaws.com.rproxy.govskope.caPour 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-ids012345678910023456789012Sortie :
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, consultez GetLogin
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser get-repository-policy.
- AWS CLI
-
Pou récupérer la politique d’un référentiel spécifié
L’exemple
get-repository-policysuivant affiche les informations sur la politique du référentielcluster-autoscaler.aws ecr get-repository-policy \ --repository-namecluster-autoscalerSortie :
{ "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, consultez GetRepositoryPolicy
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser initiate-layer-upload.
- AWS CLI
-
Pour lancer le chargement d’une couche d’image
L’exemple
initiate-layer-uploadsuivant lance le chargement d’une couche d’image vers le référentiellayer-test.aws ecr initiate-layer-upload \ --repository-namelayer-testSortie :
{ "partSize": 10485760, "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9" }-
Pour plus de détails sur l’API, consultez InitiateLayerUpload
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser list-images.
- AWS CLI
-
Pour répertorier les images dans un référentiel
L’exemple
list-imagessuivant affiche la liste des images du référentielcluster-autoscaler.aws ecr list-images \ --repository-namecluster-autoscalerSortie :
{ "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, consultez ListImages
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser list-tags-for-resource.
- AWS CLI
-
Pour répertorier les balises du référentiel
L’exemple
list-tags-for-resourcesuivant affiche la liste des balises associées au référentielhello-world.aws ecr list-tags-for-resource \ --resource-arnarn:aws:ecr:us-west-2:012345678910:repository/hello-worldSortie :
{ "tags": [ { "Key": "Stage", "Value": "Integ" } ] }-
Pour plus de détails sur l’API, consultez ListTagsForResource
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser put-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-configurationsuivant met à jour la configuration de l’analyse d’image pour le référentiel spécifié.aws ecr put-image-scanning-configuration \ --repository-namesample-repo\ --image-scanning-configurationscanOnPush=trueSortie :
{ "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.
-
Pour plus de détails sur l’API, consultez PutImageScanningConfiguration
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser put-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-mutabilitysuivant configure le référentiel spécifié pour l’immuabilité des balises. Il empêche le remplacement de toutes les balises d’image du référentiel.aws ecr put-image-tag-mutability \ --repository-namehello-repository\ --image-tag-mutabilityIMMUTABLESortie :
{ "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, consultez PutImageTagMutability
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser put-image.
- AWS CLI
-
Pour baliser de nouveau une image avec son manifeste
L’exemple
put-imagesuivant crée une nouvelle balise dans le référentielhello-worldavec un manifeste d’image existant.aws ecr put-image \ --repository-namehello-world\ --image-tag2019.08\ --image-manifestfile://hello-world.manifest.jsonContenu 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, consultez PutImage
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser put-lifecycle-policy.
- AWS CLI
-
Créer une politique de cycle de vie
L’exemple
put-lifecycle-policysuivant 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, consultez PutLifeCyclePolicy
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser set-repository-policy.
- AWS CLI
-
Pour définir la politique d’un référentiel
L’exemple
set-repository-policysuivant attache au référentielcluster-autoscalerune politique de référentiel contenue dans un fichier.aws ecr set-repository-policy \ --repository-namecluster-autoscaler\ --policy-textfile://my-policy.jsonContenu 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, consultez SetRepositoryPolicy
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser start-image-scan.
- AWS CLI
-
Pour démarrer une analyse de vulnérabilité d’une image
L’exemple
start-image-scansuivant 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-namesample-repo\ --image-idimageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6Sortie :
{ "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, consultez StartImageScan
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser start-lifecycle-policy-preview.
- AWS CLI
-
Pour créer une politique de cycle de vie
L’exemple
start-lifecycle-policy-previewsuivant 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" }-
Pour plus de détails sur l’API, consultez StartLifecyclePolicyPreview
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser tag-resource.
- AWS CLI
-
Pour baliser un référentiel
L’exemple
tag-resourcesuivant définit une balise avec une cléStageet une valeurIntegsur le référentielhello-world.aws ecr tag-resource \ --resource-arnarn:aws:ecr:us-west-2:012345678910:repository/hello-world\ --tagsKey=Stage,Value=IntegCette commande ne produit aucune sortie.
-
Pour plus de détails sur l’API, consultez TagResource
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser untag-resource.
- AWS CLI
-
Pour supprimer une balise d’un référentiel
L’exemple
untag-resourcesuivant supprime la balise avec la cléStagedu référentielhello-world.aws ecr untag-resource \ --resource-arnarn:aws:ecr:us-west-2:012345678910:repository/hello-world\ --tag-keysStageCette commande ne produit aucune sortie.
-
Pour plus de détails sur l’API, consultez UntagResource
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser upload-layer-part.
- AWS CLI
-
Pour charger une partie d’une couche
L’exemple
upload-layer-partsuivant charge une partie de la couche d’image dans le référentiellayer-test.aws ecr upload-layer-part \ --repository-namelayer-test\ --upload-id6cb64b8a-9378-0e33-2ab1-b780fab8a9e9\ --part-first-byte0\ --part-last-byte8323314\ --layer-part-blobfile:///var/lib/docker/image/overlay2/layerdb/sha256/ff986b10a018b48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323e/layer.b64Sortie :
{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "registryId": "012345678910", "lastByteReceived": 8323314, "repositoryName": "layer-test" }-
Pour plus de détails sur l’API, consultez UploadLayerPart
dans la Référence des commandes de l’AWS CLI.
-