View a markdown version of this page

Referensi file definisi gambar - AWS CodePipeline

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

Referensi file definisi gambar

Bagian ini hanya referensi. Untuk informasi tentang membuat pipeline dengan tindakan sumber atau penerapan untuk kontainer, lihatBuat pipeline, tahapan, dan tindakan.

AWS CodePipeline pekerja pekerjaan untuk tindakan kontainer, seperti tindakan sumber Amazon ECR atau tindakan penyebaran Amazon ECS, menggunakan file definisi untuk memetakan URI gambar dan nama wadah ke definisi tugas. Setiap file definisi adalah JSON-formatted file yang digunakan oleh penyedia tindakan sebagai berikut:

file imagedefinitions.json untuk tindakan penerapan standar Amazon ECS

Dokumen definisi gambar adalah file JSON yang menjelaskan nama wadah Amazon ECS Anda dan gambar serta tag. Jika Anda menerapkan aplikasi berbasis kontainer, Anda harus membuat file definisi gambar untuk menyediakan wadah Amazon ECS dan identifikasi gambar kepada pekerja CodePipeline pekerjaan untuk diambil dari repositori gambar, seperti Amazon ECR.

catatan

Nama file default untuk file tersebut adalahimagedefinitions.json. Jika Anda memilih untuk menggunakan nama file yang berbeda, Anda harus memberikannya saat membuat tahap penyebaran pipeline.

Buat imagedefinitions.json file dengan pertimbangan berikut:

  • File harus menggunakan UTF-8 encoding.

  • Batas ukuran file maksimum untuk file definisi gambar adalah 100 KB.

  • Anda harus membuat file sebagai sumber atau membangun artefak sehingga merupakan artefak input untuk tindakan penerapan. Dengan kata lain, pastikan bahwa file tersebut diunggah ke lokasi sumber Anda, seperti CodeCommit repositori Anda, atau dihasilkan sebagai artefak keluaran bawaan.

imagedefinitions.jsonFile menyediakan nama wadah dan URI gambar. Itu harus dibangun dengan set pasangan kunci-nilai berikut.

Key Nilai
name container_name
ImageURI imageUri
catatan

Bidang nama digunakan untuk nama gambar wadah, yang berarti nama untuk gambar Docker.

Berikut adalah struktur JSON, di mana nama wadah adalahsample-app, URI gambarecs-repo, dan tagnya adalahlatest:

[ { "name": "sample-app", "imageUri": "11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest" } ]

Anda juga dapat membangun file untuk mencantumkan beberapa pasangan image-container.

Struktur JSON:

[ { "name": "simple-app", "imageUri": "httpd:2.4" }, { "name": "simple-app-1", "imageUri": "mysql" }, { "name": "simple-app-2", "imageUri": "java1.8" } ]

Sebelum Anda membuat pipeline, gunakan langkah-langkah berikut untuk mengatur imagedefinitions.json file.

  1. Sebagai bagian dari perencanaan penerapan aplikasi berbasis container untuk pipeline Anda, rencanakan tahap sumber dan tahap pembuatan, jika ada.

  2. Pilih salah satu cara berikut:

    1. Jika pipeline Anda dibuat sehingga melewati tahap pembuatan, Anda harus membuat file JSON secara manual dan mengunggahnya ke repositori sumber Anda sehingga tindakan sumber dapat menyediakan artefak. Buat file menggunakan editor teks, dan beri nama file atau gunakan nama imagedefinitions.json file default. Dorong file definisi gambar ke repositori sumber Anda.

      catatan

      Jika repositori sumber Anda adalah bucket Amazon S3, ingatlah untuk zip file JSON.

    2. Jika pipeline Anda memiliki tahap build, tambahkan perintah ke file buildspec Anda yang mengeluarkan file definisi gambar di repositori sumber Anda selama fase build. Contoh berikut menggunakan printf perintah untuk membuat imagedefinitions.json file. Cantumkan perintah ini di post_build bagian buildspec.yml file:

      printf '[{"name":"container_name","imageUri":"image_URI"}]' > imagedefinitions.json

      Anda harus menyertakan file definisi gambar sebagai artefak keluaran dalam buildspec.yml file.

  3. Saat Anda membuat pipeline di konsol, pada halaman Deplo y wizard Buat Pipeline, di Nama File Gambar, masukkan nama file definisi gambar.

Untuk tutorial langkah demi langkah untuk membuat pipeline yang menggunakan Amazon ECS sebagai penyedia penerapan, lihat Tutorial: Penerapan Berkelanjutan dengan CodePipeline.

Detail.json file gambar untuk tindakan blue/green penyebaran Amazon ECS

Dok imageDetail.json umen adalah file JSON yang menjelaskan URI gambar Amazon ECS Anda. Jika Anda menerapkan aplikasi berbasis container untuk penerapan, Anda harus membuat blue/green imageDetail.json file tersebut untuk memberikan identifikasi gambar kepada Amazon ECS dan pekerja CodeDeploy pekerjaan untuk diambil dari repositori gambar, seperti Amazon ECR.

catatan

Nama file harusimageDetail.json.

Untuk deskripsi tindakan dan parameternya, lihatAmazon Elastic Container Service dan referensi tindakan CodeDeploy penerapan biru-hijau.

Anda harus membuat imageDetail.json file sebagai sumber atau membangun artefak sehingga merupakan artefak input untuk tindakan penerapan. Anda dapat menggunakan salah satu metode ini untuk menyediakan imageDetail.json file dalam pipeline:

  • Sertakan imageDetail.json file di lokasi sumber Anda sehingga disediakan dalam pipeline sebagai masukan untuk tindakan blue/green penerapan Amazon ECS Anda.

    catatan

    Jika repositori sumber Anda adalah bucket Amazon S3, ingatlah untuk zip file JSON.

  • Tindakan sumber Amazon ECR secara otomatis menghasilkan imageDetail.json file sebagai artefak masukan untuk tindakan berikutnya.

    catatan

    Karena tindakan sumber Amazon ECR membuat file ini, pipeline dengan tindakan sumber Amazon ECR tidak perlu menyediakan imageDetail.json file secara manual.

    Untuk tutorial tentang membuat pipeline yang menyertakan tahap sumber Amazon ECR, lihatTutorial: Buat pipeline dengan sumber dan ECS-to-CodeDeploy penerapan Amazon ECR.

Diagram yang menunjukkan Detail.json file gambar yang terkandung dalam bucket artefak

imageDetail.jsonFile menyediakan URI gambar. Itu harus dibangun dengan pasangan kunci-nilai berikut.

Key Nilai
ImageURI image_URI
imageDetail.json

Berikut adalah struktur JSON, di mana URI gambar adalahACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3:

{ "ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3" }
imageDetail.json (generated by ECR)

imageDetail.jsonFile dihasilkan secara otomatis oleh tindakan sumber Amazon ECR setiap kali perubahan didorong ke repositori gambar. T imageDetail.json indakan sumber yang dihasilkan oleh Amazon ECR disediakan sebagai artefak keluaran dari tindakan sumber ke tindakan berikutnya dalam pipeline.

Berikut adalah struktur JSON, di mana nama repositori adalahdk-image-repo, URI gambarecs-repo, dan tag gambar adalahlatest:

{ "ImageSizeInBytes": "44728918", "ImageDigest": "sha256:EXAMPLE11223344556677889900bfea42ea2d3b8a1ee8329ba7e68694950afd3", "Version": "1.0", "ImagePushedAt": "Mon Jan 21 20:04:00 UTC 2019", "RegistryId": "EXAMPLE12233", "RepositoryName": "dk-image-repo", "ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3", "ImageTags": [ "latest" ] }

imageDetail.jsonFile memetakan URI gambar dan nama wadah ke definisi tugas Amazon ECS sebagai berikut:

  • ImageSizeInBytes: Ukuran, dalam byte, dari gambar di repositori.

  • ImageDigest: In sha256 tisari manifes gambar.

  • Version: Versi gambar.

  • ImagePushedAt: Tanggal dan waktu ketika gambar terbaru didorong ke repositori.

  • RegistryId: ID AWS akun yang terkait dengan registri yang berisi repositori.

  • RepositoryName: Nama repositori Amazon ECR tempat gambar didorong.

  • ImageURI: URI untuk gambar.

  • ImageTags: Tag yang digunakan untuk gambar.

Sebelum Anda membuat pipeline, gunakan langkah-langkah berikut untuk mengatur imageDetail.json file.

  1. Sebagai bagian dari perencanaan penerapan aplikasi berbasis container blue/green untuk pipeline Anda, rencanakan tahap sumber dan tahap pembuatan, jika ada.

  2. Pilih salah satu cara berikut:

    1. Jika pipeline Anda telah melewati tahap pembuatan, Anda harus membuat file JSON secara manual dan mengunggahnya ke repositori sumber Anda, seperti CodeCommit, sehingga tindakan sumber dapat menyediakan artefak. Buat file menggunakan editor teks, dan beri nama file atau gunakan nama imageDetail.json file default. Dorong imageDetail.json file ke repositori sumber Anda.

    2. Jika pipeline Anda memiliki tahap pembuatan, lakukan hal berikut:

      1. Tambahkan perintah ke file buildspec Anda yang mengeluarkan file definisi gambar di repositori sumber Anda selama fase pembuatan. Contoh berikut menggunakan printf perintah untuk membuat imageDetail.json file. Cantumkan perintah ini di post_build bagian file buildspec.yml:

        printf '{"ImageURI":"image_URI"}' > imageDetail.json

        Anda harus menyertakan imageDetail.json file sebagai artefak keluaran dalam buildspec.yml file.

      2. Tambahkan imageDetail.json sebagai file artefak dalam buildspec.yml file.

        artifacts: files: - imageDetail.json