Contoh Amazon ECR menggunakan AWS CLI - AWS Command Line Interface

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh Amazon ECR menggunakan AWS CLI

Contoh kode berikut menunjukkan cara melakukan tindakan dan mengimplementasikan skenario umum dengan menggunakan AWS Command Line Interface With Amazon ECR.

Tindakan adalah kutipan kode dari program yang lebih besar dan harus dijalankan dalam konteks. Sementara tindakan menunjukkan cara memanggil fungsi layanan individual, Anda dapat melihat tindakan dalam konteks dalam skenario terkait.

Setiap contoh menyertakan tautan ke kode sumber lengkap, di mana Anda dapat menemukan instruksi tentang cara mengatur dan menjalankan kode dalam konteks.

Tindakan

Contoh kode berikut menunjukkan cara menggunakanbatch-check-layer-availability.

AWS CLI

Untuk memeriksa ketersediaan lapisan

batch-check-layer-availabilityContoh berikut memeriksa ketersediaan lapisan dengan intisari sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed di cluster-autoscaler repositori.

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

Output:

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

Contoh kode berikut menunjukkan cara menggunakanbatch-delete-image.

AWS CLI

Contoh 1: Untuk menghapus gambar

batch-delete-imageContoh berikut menghapus gambar dengan tag precise di repositori yang ditentukan dalam registri default untuk akun.

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

Output:

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

Contoh 2: Untuk menghapus beberapa gambar

batch-delete-imageContoh berikut menghapus semua gambar yang ditandai dengan prod dan team1 di repositori yang ditentukan.

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

Output:

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

Untuk informasi selengkapnya, lihat Menghapus Gambar di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakanbatch-get-image.

AWS CLI

Contoh 1: Untuk mendapatkan gambar

batch-get-imageContoh berikut mendapatkan gambar dengan tag v1.13.6 dalam repositori yang disebut cluster-autoscaler dalam registri default untuk akun.

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

Output:

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

Contoh 2: Untuk mendapatkan banyak gambar

batch-get-imageContoh berikut menampilkan rincian semua gambar yang ditandai dengan prod dan team1 dalam repositori yang ditentukan.

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

Output:

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

Untuk informasi selengkapnya, lihat Gambar di Panduan Pengguna Amazon ECR.

  • Untuk detail API, lihat BatchGetImagedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakancomplete-layer-upload.

AWS CLI

Untuk menyelesaikan unggahan lapisan gambar

complete-layer-uploadContoh berikut melengkapi upload layer gambar ke layer-test repositori.

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

Output:

{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "layerDigest": "sha256:9a77f85878aa1906f2020a0ecdf7a7e962d57e882250acd773383224b3fe9a02", "repositoryName": "layer-test", "registryId": "130757420319" }

Contoh kode berikut menunjukkan cara menggunakancreate-repository.

AWS CLI

Contoh 1: Untuk membuat repositori

create-repositoryContoh berikut membuat repositori di dalam namespace yang ditentukan dalam registri default untuk akun.

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

Output:

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

Untuk informasi selengkapnya, lihat Membuat Repositori di Panduan Pengguna Amazon ECR.

Contoh 2: Untuk membuat repositori yang dikonfigurasi dengan immutabilitas tag gambar

create-repositoryContoh berikut membuat repositori dikonfigurasi untuk kekekalan tag dalam registri default untuk akun.

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

Output:

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

Untuk informasi selengkapnya, lihat Mutabilitas Tag Gambar di Panduan Pengguna Amazon ECR.

Contoh 3: Untuk membuat repositori yang dikonfigurasi dengan konfigurasi pemindaian

create-repositoryContoh berikut membuat repositori yang dikonfigurasi untuk melakukan pemindaian kerentanan pada push gambar di registri default untuk akun.

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

Output:

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

Untuk informasi selengkapnya, lihat Pemindaian Gambar di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakandelete-lifecycle-policy.

AWS CLI

Untuk menghapus kebijakan siklus hidup untuk repositori

delete-lifecycle-policyContoh berikut menghapus kebijakan siklus hidup untuk repositori. hello-world

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

Output:

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

Contoh kode berikut menunjukkan cara menggunakandelete-repository-policy.

AWS CLI

Untuk menghapus kebijakan repositori untuk repositori

delete-repository-policyContoh berikut menghapus kebijakan repositori untuk repositori. cluster-autoscaler

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

Output:

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

Contoh kode berikut menunjukkan cara menggunakandelete-repository.

AWS CLI

Untuk menghapus repositori

delete-repositoryContoh perintah force berikut menghapus repositori yang ditentukan dalam registri default untuk akun. --forceBendera diperlukan jika repositori berisi gambar.

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

Output:

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

Untuk informasi selengkapnya, lihat Menghapus Repositori di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakandescribe-image-scan-findings.

AWS CLI

Untuk menggambarkan temuan pemindaian untuk sebuah gambar

describe-image-scan-findingsContoh berikut mengembalikan temuan pemindaian gambar untuk gambar menggunakan intisari gambar di repositori tertentu dalam registri default untuk akun.

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

Output:

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

Untuk informasi selengkapnya, lihat Pemindaian Gambar di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakandescribe-images.

AWS CLI

Untuk menggambarkan gambar dalam repositori

describe-imagesContoh berikut menampilkan detail tentang gambar di cluster-autoscaler repositori dengan tag. v1.13.6

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

Output:

{ "imageDetails": [ { "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTags": [ "v1.13.6" ], "imageSizeInBytes": 48318255, "imagePushedAt": 1565128275.0 } ] }
  • Untuk detail API, lihat DescribeImagesdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakandescribe-repositories.

AWS CLI

Untuk menggambarkan repositori dalam registri

Contoh ini menjelaskan repositori dalam registri default untuk akun.

Perintah:

aws ecr describe-repositories

Output:

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

Contoh kode berikut menunjukkan cara menggunakanget-authorization-token.

AWS CLI

Untuk mendapatkan token otorisasi untuk registri default Anda

get-authorization-tokenContoh perintah berikut mendapatkan token otorisasi untuk registri default Anda.

aws ecr get-authorization-token

Output:

{ "authorizationData": [ { "authorizationToken": "QVdTOkN...", "expiresAt": 1448875853.241, "proxyEndpoint": "https://123456789012.dkr.ecr.us-west-2.amazonaws.com" } ] }

Contoh kode berikut menunjukkan cara menggunakanget-download-url-for-layer.

AWS CLI

Untuk mendapatkan URL unduhan lapisan

get-download-url-for-layerContoh berikut menampilkan URL unduhan lapisan dengan intisari sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed di cluster-autoscaler repositori.

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

Output:

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

Contoh kode berikut menunjukkan cara menggunakanget-lifecycle-policy-preview.

AWS CLI

Untuk mengambil detail untuk pratinjau kebijakan siklus hidup

get-lifecycle-policy-previewContoh berikut mengambil hasil pratinjau kebijakan siklus hidup untuk repositori yang ditentukan dalam registri default untuk akun.

Perintah:

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

Output:

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

Untuk informasi selengkapnya, lihat Kebijakan Siklus Hidup di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakanget-lifecycle-policy.

AWS CLI

Untuk mengambil kebijakan siklus hidup

get-lifecycle-policyContoh berikut menampilkan rincian kebijakan siklus hidup untuk repositori yang ditentukan dalam registri default untuk akun.

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

Output:

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

Untuk informasi selengkapnya, lihat Kebijakan Siklus Hidup di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakanget-login-password.

AWS CLI

Untuk mengambil kata sandi untuk mengautentikasi ke registri

Berikut ini get-login-password menampilkan kata sandi yang dapat Anda gunakan dengan klien kontainer pilihan Anda untuk mengautentikasi ke registri ECR Amazon mana pun yang dapat diakses oleh kepala sekolah IAM Anda.

aws ecr get-login-password

Output:

<password>

Untuk digunakan dengan CLI Docker, pipa output perintah get-login-password ke docker login perintah. Saat mengambil kata sandi, pastikan Anda menentukan Wilayah yang sama dengan registri ECR Amazon Anda.

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

Untuk informasi selengkapnya, lihat Otentikasi Registri di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakanget-login.

AWS CLI

Untuk mengambil perintah login Docker ke registri default Anda

Contoh ini mencetak perintah yang dapat Anda gunakan untuk masuk ke registri Amazon ECR default Anda.

Perintah:

aws ecr get-login

Output:

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

Untuk masuk ke registri akun lain

Contoh ini mencetak satu atau beberapa perintah yang dapat Anda gunakan untuk masuk ke pendaftar Amazon ECR yang terkait dengan akun lain.

Perintah:

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

Output:

docker login -u <username> -p <token-1> -e none <endpoint-1> docker login -u <username> -p <token-2> -e none <endpoint-2>
  • Untuk detail API, lihat GetLogindi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanget-repository-policy.

AWS CLI

Untuk mengambil kebijakan repositori untuk repositori

get-repository-policyContoh berikut menampilkan rincian tentang kebijakan repositori untuk repositori. cluster-autoscaler

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

Output:

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

Contoh kode berikut menunjukkan cara menggunakaninitiate-layer-upload.

AWS CLI

Untuk memulai unggahan lapisan gambar

initiate-layer-uploadContoh berikut memulai upload layer gambar ke layer-test repositori.

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

Output:

{ "partSize": 10485760, "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9" }

Contoh kode berikut menunjukkan cara menggunakanlist-images.

AWS CLI

Untuk daftar gambar dalam repositori

list-imagesContoh berikut menampilkan daftar gambar dalam cluster-autoscaler repositori.

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

Output:

{ "imageIds": [ { "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", "imageTag": "v1.13.8" }, { "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", "imageTag": "v1.13.7" }, { "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTag": "v1.13.6" } ] }
  • Untuk detail API, lihat ListImagesdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlist-tags-for-resource.

AWS CLI

Untuk daftar tag untuk repositori

list-tags-for-resourceContoh berikut menampilkan daftar tag yang terkait dengan hello-world repositori.

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

Output:

{ "tags": [ { "Key": "Stage", "Value": "Integ" } ] }

Contoh kode berikut menunjukkan cara menggunakanput-image-scanning-configuration.

AWS CLI

Untuk memperbarui konfigurasi pemindaian gambar untuk repositori

put-image-scanning-configurationContoh berikut memperbarui konfigurasi pemindaian gambar untuk repositori yang ditentukan.

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

Output:

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

Untuk informasi selengkapnya, lihat Pemindaian Gambar di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakanput-image-tag-mutability.

AWS CLI

Untuk memperbarui pengaturan mutabilitas tag gambar untuk repositori

put-image-tag-mutabilityContoh berikut mengkonfigurasi repositori yang ditentukan untuk kekekalan tag. Ini mencegah semua tag gambar dalam repositori ditimpa.

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

Output:

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

Untuk informasi selengkapnya, lihat Mutabilitas Tag Gambar di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakanput-image.

AWS CLI

Untuk menandai ulang gambar dengan manifesnya

put-imageContoh berikut membuat tag baru di hello-world repositori dengan manifes gambar yang ada.

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

Isi dari 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" } ] }

Output:

{ "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" } }
  • Untuk detail API, lihat PutImagedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanput-lifecycle-policy.

AWS CLI

Untuk membuat kebijakan siklus hidup

put-lifecycle-policyContoh berikut membuat kebijakan siklus hidup untuk repositori yang ditentukan dalam registri default untuk akun.

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

Isi dari policy.json:

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

Output:

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

Untuk informasi selengkapnya, lihat Kebijakan Siklus Hidup di Panduan Pengguna Amazon ECR.

Contoh kode berikut menunjukkan cara menggunakanset-repository-policy.

AWS CLI

Untuk menetapkan kebijakan repositori untuk repositori

set-repository-policyContoh berikut melampirkan kebijakan repositori yang terkandung dalam file ke repositori. cluster-autoscaler

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

Isi dari my-policy.json:

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

Output:

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

Contoh kode berikut menunjukkan cara menggunakanstart-image-scan.

AWS CLI

Untuk memulai pemindaian kerentanan gambar

start-image-scanContoh berikut memulai pemindaian gambar dan ditentukan oleh intisari gambar di repositori yang ditentukan.

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

Output:

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

Untuk informasi selengkapnya, lihat Pemindaian Gambar di Panduan Pengguna Amazon ECR.

  • Untuk detail API, lihat StartImageScandi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanstart-lifecycle-policy-preview.

AWS CLI

Untuk membuat pratinjau kebijakan siklus hidup

start-lifecycle-policy-previewContoh berikut membuat pratinjau kebijakan siklus hidup yang ditentukan oleh file JSON untuk repositori tertentu.

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

Isi dari policy.json:

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

Output:

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

Contoh kode berikut menunjukkan cara menggunakantag-resource.

AWS CLI

Untuk menandai repositori

tag-resourceContoh berikut menetapkan tag dengan kunci Stage dan nilai Integ pada hello-world repositori.

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

Perintah ini tidak menghasilkan output.

  • Untuk detail API, lihat TagResourcedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanuntag-resource.

AWS CLI

Untuk menghapus tag repositori

untag-resourceContoh berikut menghapus tag dengan kunci Stage dari hello-world repositori.

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

Perintah ini tidak menghasilkan output.

  • Untuk detail API, lihat UntagResourcedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanupload-layer-part.

AWS CLI

Untuk mengunggah bagian lapisan

Berikut ini upload-layer-part mengunggah bagian layer gambar ke layer-test repositori.

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

Output:

{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "registryId": "012345678910", "lastByteReceived": 8323314, "repositoryName": "layer-test" }