Referensi berkas 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 berkas definisi gambar

Bagian ini hanya referensi. Untuk informasi tentang membuat pipeline dengan sumber atau menyebarkan tindakan untuk kontainer, lihatBuat pipa di CodePipeline.

AWS CodePipelinepekerja pekerjaan untuk tindakan kontainer, seperti tindakan sumber Amazon ECR atau tindakan penyebaran 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 memerlukanimagedefinitions.jsonfile sebagai masukan ke tindakan penyebaran.

  • Deployment biru/hijau Amazon ECS memerlukanimageDetail.jsonfile sebagai masukan ke tindakan penyebaran.

    • Tindakan sumber Amazon ECR menghasilkanimageDetail.jsonfile yang disediakan sebagai output dari aksi sumber.

file imagedefinitions.json untuk tindakan penerapan standar Amazon ECS

Dokumen definisi gambar adalah file JSON yang menjelaskan nama kontainer Amazon ECS Anda serta gambar serta tag. Jika Anda menerapkan aplikasi berbasis kontainer, Anda harus membuat file definisi gambar untuk menyediakan CodePipeline job worker dengan kontainer Amazon ECS dan identifikasi gambar 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 deployment Alur.

Buatimagedefinitions.jsonberkas dengan pertimbangan berikut:

  • File harus menggunakan pengodean 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 masukan untuk aksi penyebaran. Dengan kata lain, pastikan file tersebut diunggah ke lokasi sumber Anda, seperti file Anda CodeCommit repositori, atau dihasilkan sebagai artefak keluaran dibangun.

Klasterimagedefinitions.jsonfile memberikan nama kontainer dan URI gambar. Itu harus dibangun dengan set pasangan nilai kunci berikut.

Kunci Nilai
nama container_name
imageUri imageUri

Berikut adalah struktur JSON, di mana nama kontainersample-app, URI gambar adalahecs-repo, dan taglatest:

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

Anda juga dapat membuat file untuk mencantumkan beberapa pasangan kontainer-image.

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 Alur, gunakan langkah-langkah berikut untuk menyiapkanimagedefinitions.jsonberkas.

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

  2. Pilih salah satu dari berikut:

    1. Jika pipeline Anda dibuat sehingga melewati tahap pembangunan, Anda harus membuat file JSON secara manual dan mengunggahnya ke repositori sumber Anda sehingga aksi sumber dapat menyediakan artefak. Buat file menggunakan editor teks, dan beri nama file atau gunakan defaultimagedefinitions.jsonNama file. Dorong file definisi gambar ke repositori sumber Anda.

      catatan

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

    2. Jika pipeline Anda memiliki tahap pembangunan, tambahkan perintah ke file spesifikasi build yang mengeluarkan file definisi gambar di repositori sumber Anda selama fase build. Contoh berikut menggunakanprintfperintah untuk membuatimagedefinitions.jsonberkas. Cantumkan perintah ini dipost_buildbagianbuildspec.ymlberkas:

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

      Anda harus menyertakan file definisi gambar sebagai artefak keluaran dibuildspec.ymlberkas.

  3. Saat Anda membuat pipeline di konsol, diDeployhalamanMembuat Alurwizard, diNama File Gambar, masukkan nama file definisi gambar.

Untuk step-by-step tutorial untuk membuat pipeline yang menggunakan Amazon ECS sebagai penyedia penyebaran, lihatTutorial: Deployment kontintintinu CodePipeline.

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

SesiimageDetail.jsondocument adalah file JSON yang menjelaskan URI gambar Amazon ECS Anda. Jika Anda menerapkan aplikasi berbasis kontainer untuk penyebaran biru/hijau, Anda harus menghasilkanimageDetail.jsonfile untuk menyediakan Amazon ECS dan CodeDeployjob worker dengan identifikasi gambar untuk diambil dari repositori gambar, seperti Amazon ECR.

catatan

Nama file harusimageDetail.json.

Untuk deskripsi tindakan dan parameternya, lihatLayanan Wadah Amazon Elastic CodeDeploy biru-hijau.

Anda harus membuatimageDetail.jsonfile sebagai sumber atau membangun artefak sehingga merupakan artefak masukan untuk tindakan penyebaran. Anda dapat menggunakan salah satu metode ini untuk menyediakanimageDetail.jsonfile dalam pipa:

  • SertakanimageDetail.jsonfile di lokasi sumber Anda sehingga disediakan dalam pipeline sebagai input ke tindakan penyebaran biru/hijau Amazon ECS Anda.

    catatan

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

  • Tindakan sumber Amazon ECR secara otomatis menghasilkanimageDetail.jsonfile sebagai artefak masukan untuk tindakan berikutnya.

    catatan

    Karena tindakan sumber Amazon ECR membuat file ini, pipeline dengan tindakan sumber Amazon ECR tidak perlu menyediakan file secara manualimageDetail.jsonberkas.

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

KlasterimageDetail.jsonfile menyediakan URI gambar. Itu harus dibangun dengan pasangan nilai kunci berikut.

Kunci Nilai
ImageURI Image_URI
imageDetail.json

Berikut adalah struktur JSON, di mana URI gambarACCOUNTID.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)

SesiimageDetail.jsonfile dihasilkan secara otomatis oleh aksi sumber Amazon ECR setiap kali perubahan didorong ke repositori gambar. KlasterimageDetail.jsondihasilkan oleh tindakan sumber Amazon ECR disediakan sebagai artefak keluaran dari aksi sumber ke tindakan berikutnya dalam pipeline.

Berikut adalah struktur JSON, di mana nama repositoridk-image-repo, URI gambar adalahecs-repo, dan tag gambarlatest:

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

KlasterimageDetail.jsonfile memetakan URI gambar dan nama kontainer ke definisi tugas Amazon ECS sebagai berikut:

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

  • ImageDigest: Thesha256mencerna manifes gambar.

  • Version: Versi gambar.

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

  • RegistryId: TheAWSID akun yang terkait dengan registri yang berisi repositori.

  • RepositoryName: Nama repositori Amazon ECR di mana gambar didorong.

  • ImageURI: URI untuk gambar.

  • ImageTags: Tag yang digunakan untuk gambar.

Sebelum Anda membuat Alur, gunakan langkah-langkah berikut untuk menyiapkanimageDetail.jsonberkas.

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

  2. Pilih salah satu dari berikut:

    1. Jika pipeline Anda telah melewati tahap pembangunan, Anda harus membuat file JSON secara manual dan mengunggahnya ke repositori sumber Anda, seperti CodeCommit, sehingga aksi sumber dapat memberikan artefak. Buat file menggunakan editor teks, dan beri nama file atau gunakan defaultimageDetail.jsonNama file. DorongimageDetail.jsonfile ke repositori sumber Anda.

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

      1. Tambahkan perintah ke file spesifikasi build yang mengeluarkan file definisi gambar di repositori sumber Anda selama fase pembangunan. Contoh berikut menggunakanprintfperintah untuk membuatimageDetail.jsonberkas. Cantumkan perintah ini dipost_buildbagian dari file buildspec.yml:

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

        Anda harus menyertakanimageDetail.jsonfile sebagai artefak keluaran dibuildspec.ymlberkas.

      2. TambahkanimageDetail.jsonsebagai file artefak dibuildspec.ymlberkas.

        artifacts: files: - imageDetail.json