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 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 JSON-diformat yang digunakan oleh penyedia tindakan sebagai berikut:

  • Penerapan standar Amazon ECS memerlukanimagedefinitions.jsonfile sebagai masukan ke aksi deploy.

  • Penerapan biru/hijau Amazon ECS memerlukanimageDetail.jsonfile sebagai masukan ke aksi deploy.

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

file imagedefinitions.json untuk tindakan penerapan standar Amazon ECS

Dokumen definisi gambar adalah file JSON yang menggambarkan nama kontainer Amazon ECS Anda dan gambar dan tag. Jika Anda menerapkan aplikasi berbasis kontainer, Anda harus membuat file definisi gambar untuk menyediakan job worker CodePipeline dengan kontainer Amazon ECS dan identifikasi gambar untuk diambil dari repositori, seperti Docker Hub.

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 pipa.

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

Parameterimagedefinitions.jsonfile menyediakan nama kontainer dan gambar URI. Ini 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 membangun file untuk daftar beberapa pasangan container-image.

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 menyiapkanimagedefinitions.jsonberkas.

  1. Sebagai bagian dari perencanaan penyebaran aplikasi berbasis kontainer untuk pipa Anda, rencanakan tahap sumber dan tahap pembangunan, jika berlaku.

  2. Pilih salah satu dari berikut:

    1. Jika pipeline Anda telah melewati tahap build, Anda harus membuat file JSON secara manual dan mengunggahnya ke repositori sumber Anda sehingga tindakan sumber dapat memberikan 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 zip file JSON.

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

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

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

  3. Ketika Anda membuat pipa Anda di konsol, padaDeployhalamanMembuat Pipelinewizard, diNama berkas gambar, masukkan nama file definisi gambar.

Untuk tutorial langkah demi langkah untuk membuat pipeline yang menggunakan Amazon ECS sebagai penyedia penyebaran, lihatTutorial: Penyebaran Berkelanjutan dengan CodePipeline.

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

SesiimageDetail.jsondokumen 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 CodeDeploy job worker dengan identifikasi gambar untuk diambil dari repositori, seperti Docker Hub.

catatan

Nama file harusimageDetail.json.

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

  • SertakanimageDetail.jsonfile di lokasi sumber Anda sehingga disediakan dalam pipa sebagai masukan ke tindakan penyebaran 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 menghasilkanimageDetail.jsonfile sebagai artefak masukan untuk tindakan berikutnya.

    catatan

    Karena tindakan sumber Amazon ECR membuat file ini, jaringan pipa dengan tindakan sumber Amazon ECR tidak perlu menyediakan 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.

ParameterimageDetail.jsonfile menyediakan URI gambar. Ini 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. ParameterimageDetail.jsondihasilkan oleh tindakan sumber Amazon ECR disediakan sebagai artefak keluaran dari tindakan sumber ke tindakan berikutnya dalam pipa.

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

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

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

  • ImageDigest:sha256mencerna manifes gambar.

  • Version: Versi gambar.

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

  • RegistryId:AWSID 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 membuat pipeline, gunakan langkah-langkah berikut untuk menyiapkanimageDetail.jsonberkas.

  1. Sebagai bagian dari perencanaan aplikasi berbasis kontainer biru/hijau penyebaran untuk pipa Anda, rencanakan tahap sumber dan tahap pembangunan, jika berlaku.

  2. Pilih salah satu dari berikut:

    1. Jika pipeline Anda telah melewati tahap build, Anda harus membuat file JSON secara manual dan mengunggahnya ke repositori sumber Anda, seperti CodeCommit, sehingga tindakan 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 pipa 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 menggunakanprintfperintah untuk membuatimageDetail.jsonberkas. Daftar 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