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 sumber atau tindakan penerapan untuk kontainer, lihatBuat pipeline di CodePipeline.

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

  • Penerapan standar Amazon ECS memerlukan imagedefinitions.json file sebagai masukan untuk tindakan penerapan.

  • Penerapan biru/hijau Amazon ECS memerlukan imageDetail.json file sebagai masukan untuk tindakan penerapan.

    • Tindakan sumber Amazon ECR menghasilkan imageDetail.json file yang disediakan sebagai output dari tindakan sumber.

file imagedefinitions.json untuk tindakan penerapan standar Amazon ECS

Dokumen definisi gambar adalah file JSON yang menjelaskan nama wadah Amazon ECS Anda serta gambar dan 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 menyediakannya saat membuat tahap penyebaran pipeline.

Buat imagedefinitions.json file dengan pertimbangan berikut:

  • File harus menggunakan pengkodean UTF-8.

  • 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 file tersebut diunggah ke lokasi sumber Anda, seperti CodeCommit repositori Anda, atau dihasilkan sebagai artefak keluaran bawaan.

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

Kunci Nilai
name container_name
imageUri ImageURI

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

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

Anda juga dapat membuat file untuk mencantumkan beberapa pasangan gambar kontainer.

Struktur JSON:

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

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

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

  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 spesifikasi build yang menampilkan file definisi gambar di repositori sumber selama fase build. Contoh berikut menggunakan printf perintah untuk membuat imagedefinitions.json file. Buat daftar 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 Deploy wizard Create Pipeline, di Image Filename, masukkan nama file definisi gambar.

Untuk step-by-step tutorial membuat pipeline yang menggunakan Amazon ECS sebagai penyedia penyebaran, lihat Tutorial: Penerapan Berkelanjutan dengan. CodePipeline

File ImageDetail.json untuk tindakan penerapan biru/hijau Amazon ECS

imageDetail.jsonDokumen adalah file JSON yang menjelaskan URI gambar Amazon ECS Anda. Jika Anda menerapkan aplikasi berbasis kontainer untuk penerapan biru/hijau, Anda harus membuat file imageDetail.json untuk memberikan identifikasi gambar Amazon ECS dan CodeDeploy job worker untuk diambil dari repositori gambar, seperti Amazon ECR.

catatan

Nama file harusimageDetail.json.

Untuk deskripsi tindakan dan parameternya, lihatAmazon Elastic Container Service dan CodeDeploy 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 ke tindakan penerapan biru/hijau 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 selanjutnya.

    catatan

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

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

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

Kunci 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. Tindakan sumber Amazon ECR yang imageDetail.json dihasilkan disediakan sebagai artefak keluaran dari aksi sumber ke tindakan berikutnya dalam pipeline.

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

{ "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 kontainer ke definisi tugas Amazon ECS sebagai berikut:

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

  • ImageDigest: sha256 Intisari 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.

  • ImageTagsTag yang digunakan untuk gambar.

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

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

  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 build, lakukan hal berikut:

      1. Tambahkan perintah ke file spesifikasi build Anda yang menampilkan file definisi gambar di repositori sumber Anda selama fase build. Contoh berikut menggunakan printf perintah untuk membuat imageDetail.json file. Buat daftar perintah ini di post_build bagian file buildspec.yl:

        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