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, tahapan, dan tindakan.

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

file imagedefinitions.json untuk tindakan penerapan standar Amazon ECS

Dokumen definisi gambar adalah JSON file yang menjelaskan nama ECS wadah Amazon Anda serta gambar dan tag. Jika Anda menerapkan aplikasi berbasis kontainer, Anda harus membuat file definisi gambar untuk memberi pekerja CodePipeline pekerjaan ECS penampung Amazon 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 menyediakannya 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 file tersebut diunggah ke lokasi sumber Anda, seperti CodeCommit repositori Anda, atau dihasilkan sebagai artefak keluaran bawaan.

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

Kunci Nilai
name container_name
imageUri imageUri
catatan

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

Berikut adalah JSON struktur, di mana nama wadahsample-app, gambar URIecs-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.

JSONstruktur:

[ { "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 JSON file 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 tersebut. 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

imageDetail.json untuk tindakan penerapan ECS biru/hijau Amazon

imageDetail.jsonDokumen adalah JSON file yang menggambarkan ECS gambar Amazon AndaURI. Jika Anda menerapkan aplikasi berbasis kontainer untuk penerapan biru/hijau, Anda harus membuat file imageDetail.json untuk menyediakan Amazon ECS dan pekerja CodeDeploy pekerjaan dengan identifikasi gambar untuk diambil dari repositori gambar, seperti Amazon. ECR

catatan

Nama file harusimageDetail.json.

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

    catatan

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

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

    catatan

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

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

Diagram yang menunjukkan imageDetail file.json yang terkandung dalam ember artefak

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

Kunci Nilai
Gambar URI image_URI
imageDetail.json

Berikut adalah JSON struktur, di mana gambar URI 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 ECR sumber Amazon setiap kali perubahan didorong ke repositori gambar. Tindakan ECR sumber imageDetail.json yang dihasilkan oleh Amazon disediakan sebagai artefak keluaran dari aksi sumber ke tindakan berikutnya dalam pipeline.

Berikut adalah JSON struktur, di mana nama repositoridk-image-repo, gambarecs-repo, dan tag gambar URI 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 gambar URI dan nama kontainer ke definisi ECS tugas Amazon sebagai berikut:

  • ImageSizeInBytes: Ukuran, dalam byte, dari 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 ECR repositori Amazon tempat gambar didorong.

  • ImageURI: URI Untuk gambar.

  • ImageTags: Tag 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 JSON file 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.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