Tutorial: Buat pipeline dengan sumber Amazon ECR dan penyebaran ECS-to-Codedeploy - AWS CodePipeline

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

Tutorial: Buat pipeline dengan sumber Amazon ECR dan penyebaran ECS-to-Codedeploy

Dalam tutorial ini, Anda mengonfigurasi alur diAWS CodePipelineyang menyebarkan aplikasi kontainer menggunakan deployment biru/hijau yang mendukung gambar Docker. Dalam penyebaran biru/hijau, Anda dapat meluncurkan versi baru aplikasi Anda bersama versi lama dan menguji versi baru sebelum Anda mengalihkan lalu lintas. Anda juga dapat memantau proses penyebaran dan dengan cepat memutar kembali jika ada masalah.

catatan

Tutorial ini adalah untuk Amazon ECS untuk CodeDeploy tindakan deployment biru/hijau untuk CodePipeline. Untuk tutorial yang menggunakan tindakan penerapan standar Amazon ECS di CodePipeline, lihatTutorial: Penerapan Standar Amazon ECS dengan CodePipeline.

Pipeline yang telah selesai mendeteksi perubahan pada gambar Anda, yang disimpan dalam repositori gambar seperti Amazon ECR, dan menggunakan CodeDeploy untuk merutekan dan menyebarkan lalu lintas ke klaster Amazon ECS dan penyeimbang beban. CodeDeploy menggunakan pendengar untuk mengalihkan lalu lintas ke port kontainer yang diperbarui yang ditentukan dalam AppSpec berkas. Untuk informasi tentang cara penyeimbang beban, pendengar produksi, grup target, dan aplikasi Amazon ECS Anda digunakan dalam penyebaran biru/hijau, lihatTutorial: Menerapkan Layanan Amazon ECS.

Saluran pipa juga dikonfigurasi untuk menggunakan lokasi sumber, seperti CodeCommit, tempat definisi tugas Amazon ECS Anda disimpan. Dalam tutorial ini, Anda mengonfigurasi masing-masingAWSsumber daya dan kemudian membuat pipa Anda dengan tahapan yang berisi tindakan untuk setiap sumber daya.

Pipa pengiriman berkelanjutan Anda akan secara otomatis membuat dan menyebarkan gambar kontainer setiap kali kode sumber diubah atau gambar dasar baru diunggah ke Amazon ECR.

Aliran ini menggunakan artefak berikut:

  • File gambar Docker yang menentukan nama kontainer dan URI repositori dari repositori gambar Amazon ECR Anda.

  • Definisi tugas Amazon ECS yang mencantumkan nama gambar Docker, nama kontainer, nama layanan Amazon ECS, dan konfigurasi load balancer.

  • SEBUAH CodeDeploy File AppSpec yang menentukan nama file definisi tugas Amazon ECS, nama kontainer aplikasi yang diperbarui, dan port kontainer tempat CodeDeploy mengalihkan lalu lintas produksi. Ini juga dapat menentukan konfigurasi jaringan opsional dan fungsi Lambda yang dapat Anda jalankan selama pengait acara siklus hidup penyebaran.

catatan

Saat Anda melakukan perubahan ke repositori gambar Amazon ECR Anda, tindakan sumber pipa akan membuatimageDetail.jsonfile untuk komit itu. Untuk informasi tentangimageDetail.jsonfile, lihatFile ImageDetail.json untuk tindakan penyebaran biru/hijau Amazon ECS.

Saat Anda membuat atau mengedit pipeline dan memperbarui atau menentukan artefak sumber untuk tahap penyebaran Anda, pastikan untuk menunjuk ke artefak sumber dengan nama dan versi terbaru yang ingin Anda gunakan. Setelah mengatur pipeline, saat Anda membuat perubahan pada gambar atau definisi tugas, Anda mungkin perlu memperbarui file artefak sumber Anda di repositori Anda dan kemudian mengedit tahap penyebaran di pipeline Anda.

Prasyarat

Anda harus sudah membuat sumber daya berikut:

  • SEBUAH CodeCommit repositori. Anda dapat menggunakanAWS CodeCommitrepositori yang Anda buat diTutorial: Buat pipeline sederhana (CodeCommitrepositori).

  • Luncurkan instans Linux Amazon EC2 dan instal Docker untuk membuat gambar seperti yang ditunjukkan dalam tutorial ini. Jika Anda sudah memiliki gambar yang ingin Anda gunakan, Anda dapat melewati prasyarat ini.

Langkah 1: Membuat gambar dan mendorong repositori Amazon ECR

Pada bagian ini, Anda menggunakan Docker untuk membuat gambar dan kemudian menggunakanAWS CLIuntuk membuat repositori Amazon ECR dan mendorong gambar ke repositori.

catatan

Jika Anda sudah memiliki gambar yang ingin Anda gunakan, Anda dapat melewati langkah ini.

Membuat citra

  1. Masuk ke instans Linux Anda di mana Anda menginstal Docker.

    Tarik ke bawah gambar untuknginx. Perintah ini menyediakannginx:latestcitra:

    docker pull nginx
  2. Jalankan docker images. Anda akan melihat gambar dalam daftar.

    docker images

Untuk membuat repositori Amazon ECR dan mendorong citra Anda

  1. Buat repositori Amazon ECR untuk menyimpan gambar Anda. PerhatikanrepositoryUridalam outputnya.

    aws ecr create-repository --repository-name nginx

    Output:

    { "repository": { "registryId": "aws_account_id", "repositoryName": "nginx", "repositoryArn": "arn:aws:ecr:us-east-1:aws_account_id:repository/nginx", "createdAt": 1505337806.0, "repositoryUri": "aws_account_id.dkr.ecr.us-east-1.amazonaws.com/nginx" } }
  2. Tandai gambar denganrepositoryUrinilai dari langkah sebelumnya.

    docker tag nginx:latest aws_account_id.dkr.ecr.us-east-1.amazonaws.com/nginx:latest
  3. Jalankanaws ecr get-login-passwordperintah, seperti yang ditunjukkan dalam contoh ini untukus-west-2Wilayah.

    aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin ACCOUNT_ID.dkr.ecr.us-west-2.amazonaws.com/nginx
  4. Mendorong gambar ke Amazon ECR menggunakanrepositoryUridari langkah sebelumnya.

    docker push aws_account_id.dkr.ecr.us-east-1.amazonaws.com/nginx:latest

Langkah 2: Membuat ketentuan tugas dan AppSpec file sumber dan mendorong ke CodeCommit repositori

Pada bagian ini, Anda membuat file JSON definisi tugas dan mendaftarkannya dengan Amazon ECS. Anda kemudian membuat AppSpec berkas CodeDeploy dan gunakan klien Git Anda untuk mendorong file ke CodeCommit repositori.

Untuk membuat ketentuan tugas untuk gambar Anda

  1. Buat file yang diberi nama taskdef.json dengan konten berikut ini. Untukimage, masukkan nama gambar Anda, seperti nginx. Nilai ini diperbarui saat pipa Anda berjalan.

    catatan

    Pastikan bahwa peran eksekusi yang ditentukan dalam definisi tugas berisiAmazonECSTaskExecutionRolePolicy. Untuk informasi selengkapnya, lihatPeran IAM Eksekusi Tugas Amazon ECSdiPanduan Developer Amazon ECS.

    { "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "sample-website", "image": "nginx", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "family": "ecs-demo" }
  2. Daftarkan ketentuan tugas Anda dengantaskdef.jsonberkas.

    aws ecs register-task-definition --cli-input-json file://taskdef.json
  3. Setelah definisi tugas terdaftar, edit file Anda untuk menghapus nama gambar dan menyertakan<IMAGE1_NAME>teks placeholder di bidang gambar.

    { "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "sample-website", "image": "<IMAGE1_NAME>", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "family": "ecs-demo" }

Membuat AppSpec fail

  • Parameter AppSpec file yang digunakan untuk CodeDeploy deployment. File, yang mencakup bidang opsional, menggunakan format ini:

    version: 0.0 Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-ARN" LoadBalancerInfo: ContainerName: "container-name" ContainerPort: container-port-number # Optional properties PlatformVersion: "LATEST" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["subnet-name-1", "subnet-name-2"] SecurityGroups: ["security-group"] AssignPublicIp: "ENABLED" Hooks: - BeforeInstall: "BeforeInstallHookFunctionName" - AfterInstall: "AfterInstallHookFunctionName" - AfterAllowTestTraffic: "AfterAllowTestTrafficHookFunctionName" - BeforeAllowTraffic: "BeforeAllowTrafficHookFunctionName" - AfterAllowTraffic: "AfterAllowTrafficHookFunctionName"

    Untuk informasi lebih lanjut tentang AppSpec file, termasuk contoh, lihatCodeDeploy AppSpec Referensi Berkas.

    Buat file yang diberi nama appspec.yaml dengan konten berikut ini. UntukTaskDefinition, tidak mengubah<TASK_DEFINITION>teks placeholder. Nilai ini diperbarui saat pipa Anda berjalan.

    version: 0.0 Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: <TASK_DEFINITION> LoadBalancerInfo: ContainerName: "sample-website" ContainerPort: 80

Untuk mendorong file ke CodeCommit repositori

  1. Mendorong atau meng-upload file ke CodeCommit repositori. File-file ini adalah artefak sumber yang dibuat olehMembuat Alurwizard untuk tindakan penyebaran Anda di CodePipeline. File Anda akan terlihat seperti ini di direktori lokal Anda:

    /tmp |my-demo-repo |-- appspec.yaml |-- taskdef.json
  2. Pilih metode yang ingin Anda gunakan untuk mengunggah file Anda:

    1. Untuk menggunakan git command line Anda dari repositori kloning pada komputer lokal Anda:

      1. Ubah direktori ke repositori lokal Anda:

        (For Linux, macOS, or Unix) cd /tmp/my-demo-repo (For Windows) cd c:\temp\my-demo-repo
      2. Jalankan perintah berikut untuk melakukan semua file Anda sekaligus:

        git add -A
      3. Jalankan perintah berikut untuk melakukan file dengan pesan commit:

        git commit -m "Added task definition files"
      4. Jalankan perintah berikut untuk mengirim file dari repo lokal Anda CodeCommit repositori:

        git push
    2. Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda:

      1. Buka CodeCommit konsol, dan pilih repositori Anda dariRepositoridaftar.

      2. MemiilihTambahkan berkas, dan kemudian pilihMeng-unggah file.

      3. MemiilihPilih file, lalu telusuri file Anda. Lakukan perubahan dengan memasukkan nama pengguna dan alamat email Anda. Pilih Perubahan commit.

      4. Ulangi langkah ini untuk setiap file yang ingin Anda unggah.

Langkah 3: Buat Application Load Balancer dan grup target

Pada bagian ini, Anda membuat Application Load Balancer Amazon EC2. Anda menggunakan nama subnet dan nilai grup target yang Anda buat dengan penyeimbang muatan nanti, saat Anda membuat layanan Amazon ECS. Anda dapat membuat Application Load Balancer atau Network Load Balancer. Penyeimbang beban harus menggunakan VPC dengan dua subnet publik di Availability Zone yang berbeda. Dalam langkah-langkah ini, Anda mengkonfirmasi VPC default Anda, membuat penyeimbang beban, dan kemudian membuat dua grup target untuk penyeimbang beban Anda. Untuk informasi selengkapnya, lihatGrup Target untuk Penyeimbang Beban Jaringan Anda.

Untuk memverifikasi VPC default dan subnet publik

  1. Masuk ke AWS Management Console dan buka konsol Amazon VPC di https://console.aws.amazon.com/vpc/.

  2. Verifikasi VPC default untuk digunakan. Pada panel navigasi, pilih VPC Anda. Perhatikan yang VPC menunjukkanyadiVPC Defaultkolom. Ini adalah VPC default. Ini berisi subnet default bagi Anda untuk memilih.

  3. MemiilihSubnet. Pilih dua subnet yang ditampilkanyadiSubnet defaultkolom.

    catatan

    Catat ID subnet Anda. Anda membutuhkannya nanti di tutorial ini.

  4. Pilih subnet, lalu pilihDeskripsitab. Verifikasi bahwa subnet yang ingin Anda gunakan berada di Availability Zone yang berbeda.

  5. Pilih subnet, lalu pilihTabel rutetab. Untuk memverifikasi bahwa setiap subnet yang ingin Anda gunakan adalah subnet publik, konfirmasikan bahwa baris gateway disertakan dalam tabel rute.

Membuat Application Load Balancer Amazon EC2

  1. Masuk ke AWS Management Console dan buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.

  2. Di panel navigasi, pilih Load Balancers.

  3. Pilih Buat Penyeimbang Beban.

  4. MemiilihApplication Load Balancer, dan kemudian pilihBuat.

  5. MasukNama, masukkan nama penyeimbang beban Anda.

  6. MasukSkema, Pilihinternet-menghadap.

  7. MasukJenis alamat IP, Pilihipv4.

  8. Konfigurasikan dua port pendengar untuk penyeimbang beban Anda:

    1. Di bawahProtokol Load Balancer, PilihHTTP. Di bawahLoad Balancer Pelabuhan, ENTER80.

    2. Pilih Tambahkan pendengar.

    3. Di bawahProtokol Load Balanceruntuk pendengar kedua, pilihHTTP. Di bawahLoad Balancer Pelabuhan, ENTER8080.

  9. Di bawahAvailability Zone, diVPC, pilih VPC default. Selanjutnya, pilih dua subnet default yang ingin Anda gunakan.

  10. Pilih Next: Configure Security Settings.

  11. Pilih Next: Configure Security Groups.

  12. MemiilihPilih grup keamanan yang sudah ada, dan membuat catatan dari ID grup keamanan.

  13. Pilih Next: Configure Routing.

  14. MasukGrup target, PilihGrup target barudan konfigurasikan grup target pertama Anda:

    1. MasukNama, masukkan nama grup target (misalnya,target-group-1).

    2. MasukJenis target, PilihIP.

    3. MasukProtokolpilihHTTP. MasukPelabuhan, ENTER80.

    4. Pilih Next: Register Targets.

  15. Pilih Berikutnya: Tinjau, dan kemudian pilihBuat.

Untuk membuat grup target kedua untuk penyeimbang beban Anda

  1. Setelah penyeimbang beban Anda disediakan, buka konsol Amazon EC2. Di panel navigasi, pilih Target Groups.

  2. PilihBuat grup target.

  3. MasukNama, masukkan nama grup target (misalnya,target-group-2).

  4. MasukJenis target, pilihIP.

  5. MasukProtokolpilihHTTP. MasukPelabuhan, ENTER8080.

  6. MasukVPC, pilih VPC default.

  7. Pilih Buat.

    catatan

    Anda harus memiliki dua grup target yang dibuat untuk penyeimbang beban agar penyebaran Anda berjalan. Anda hanya perlu membuat catatan ARN grup target pertama Anda. ARN ini digunakan dalamcreate-serviceFile JSON di langkah selanjutnya.

Untuk memperbarui load balancer Anda untuk menyertakan grup target kedua

  1. Buka konsol Amazon EC2. Di panel navigasi, pilih Load Balancers.

  2. Pilih penyeimbang beban Anda, lalu pilihListenertab. Pilih pendengar dengan port 8080, lalu pilihMengedit.

  3. Pilih ikon pensil di sebelahTeruskan ke. Pilih grup target kedua Anda, lalu pilih tanda centang. MemiilihPerbaruiuntuk menyimpan pembaruan.

Langkah 4: Buat klaster dan layanan Amazon ECS

Pada bagian ini, Anda membuat klaster dan layanan Amazon ECS tempat CodeDeploy merutekan lalu lintas selama penerapan (ke klaster Amazon ECS, bukan instans EC2). Untuk membuat layanan Amazon ECS, Anda harus menggunakan nama subnet, grup keamanan, dan nilai grup target yang Anda buat dengan penyeimbang muatan untuk membuat layanan Anda.

catatan

Bila Anda menggunakan langkah-langkah ini untuk membuat klaster Amazon ECS, Anda menggunakanHanya jaringancluster Template, yang ketentuanAWSKontainer Fargate.AWS Fargate adalah teknologi yang mengelola infrastruktur instans kontainer Anda untuk Anda. Anda tidak perlu memilih atau membuat instans Amazon EC2 secara manual untuk klaster Amazon ECS Anda.

Untuk membuat klaster Amazon ECS

  1. Buka konsol ECS Amazon di https://console.aws.amazon.com/ecs/.

  2. Di panel navigasi, pilih Kluster.

  3. Pilih Buat kluster.

  4. PilihHanya jaringancluster template yang menggunakanAWSFargate, lalu pilihLangkah selanjutnya.

  5. Masukkan nama klaster padaKonfigurasi klasterhalaman. Anda dapat menambahkan tag opsional untuk sumber daya Anda. Pilih Buat.

Untuk membuat layanan Amazon ECS

GunakanAWS CLIuntuk membuat layanan Anda di Amazon ECS.

  1. Buat file JSON dan beri namacreate-service.json. Tempelkan yang berikut ini ke file JSON.

    UntuktaskDefinitionlapangan, ketika Anda mendaftarkan definisi tugas di Amazon ECS, Anda memberikannya sebuah keluarga. Ini mirip dengan nama untuk beberapa versi ketentuan tugas, yang ditentukan dengan nomor revisi. Dalam contoh ini, gunakan”ecs-demo:1“untuk keluarga dan nomor revisi dalam file Anda. Gunakan nama subnet, grup keamanan, dan nilai grup target yang Anda buat dengan load balancerLangkah 3: Buat Application Load Balancer dan grup target .

    catatan

    Anda perlu menyertakan kelompok target ARN Anda dalam file ini. Buka konsol Amazon EC2 dan dari panel navigasi, di bawahPENYEIMBANGAN BEBAN, pilihGrup Target. Pilih grup target pertama Anda. Salin ARN Anda dariDeskripsitab.

    { "taskDefinition": "family:revision-number", "cluster": "my-cluster", "loadBalancers": [ { "targetGroupArn": "target-group-arn", "containerName": "sample-website", "containerPort": 80 } ], "desiredCount": 1, "launchType": "FARGATE", "schedulingStrategy": "REPLICA", "deploymentController": { "type": "CODE_DEPLOY" }, "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-1", "subnet-2" ], "securityGroups": [ "security-group" ], "assignPublicIp": "ENABLED" } } }
  2. Jalankancreate-serviceperintah, menentukan file JSON:

    penting

    Pastikan untuk menyertakan file:// sebelum nama file. Diperlukan dalam perintah ini.

    Contoh ini membuat layanan bernamamy-service.

    catatan

    Contoh perintah ini menciptakan layanan bernama my-service. Jika Anda sudah memiliki layanan dengan nama ini, perintah mengembalikan kesalahan.

    aws ecs create-service --service-name my-service --cli-input-json file://create-service.json

    Output mengembalikan bidang deskripsi untuk layanan Anda.

  3. Jalankandescribe-servicesperintah untuk memverifikasi bahwa layanan Anda dibuat.

    aws ecs describe-services --cluster cluster-name --services service-name

Langkah 5: Buat aplikasi CodeDeploy dan grup deployment (platform komputasi ECS)

Saat Anda membuat CodeDeploy grup aplikasi dan penyebaran untuk platform komputasi Amazon ECS, aplikasi ini digunakan selama penyebaran untuk mereferensikan grup penyebaran yang benar, grup target, pendengar, dan perilaku pengalihan lalu lintas.

Membuat CodeDeploy penerapan

  1. Buka CodeDeploy konsol dan pilihMembuat aplikasi.

  2. MasukNama aplikasi, masukkan nama yang ingin Anda gunakan.

  3. MasukPlatform komputasi, pilihAmazon ECS.

  4. Pilih Create application (Buat aplikasi).

Membuat CodeDeploy grup deployment

  1. Pada halaman aplikasi AndaGrup deploymenttab, pilihMembuat grup deployment.

  2. MasukNama grup deployment, masukkan nama yang menjelaskan grup deployment.

  3. MasukPeran layanan, pilih peran layanan yang memberikan akses CodeDeploy ke Amazon ECS. Untuk membuat peran layanan baru, ikuti langkah-langkah ini:

    1. Buka konsol IAM dihttps://console.aws.amazon.com/iam/).

    2. Dari dasbor konsol, pilihPeran.

    3. Pilih Create role (Buat peran).

    4. Di bawahPilih jenis entitas tepercaya, pilihAWSlayanan. Di bawahPilih kasus penggunaan, pilihCodeDeploy. Di bawahPilih kasus penggunaan Anda, pilihCodeDeploy - ECS. Pilih Berikutnya: Izin. ParameterAWSCodeDeployRoleForECSkebijakan terkelola sudah dilampirkan pada peran tersebut.

    5. Pilih Berikutnya: Tag , dan Berikutnya: Peninjauan.

    6. Masukkan nama untuk peran (misalnya,CodeDeployECSRole), dan kemudian pilihMembuat peran.

  4. MasukKonfigurasi lingkungan, pilih nama klaster dan nama layanan Amazon ECS Anda.

  5. FromPenyeimbang beban, pilih penyeimbang beban yang melayani lalu lintas ke layanan Amazon ECS Anda.

  6. FromPort listener, pilih port dan protokol untuk pendengar yang melayani trac produksi ke layanan Amazon ECS Anda. FromPort uji, pilih port dan protokol untuk listener uji.

  7. FromNama grup targetdanNama grup target, pilih grup target yang digunakan untuk merutekan lalu lintas selama penyebaran Anda. Pastikan bahwa ini adalah grup target yang Anda buat untuk penyeimbang beban Anda.

  8. MemiilihRoute lalu lintas segerauntuk menentukan berapa lama setelah penyebaran berhasil untuk mengalihkan lalu lintas ke tugas Amazon ECS yang diperbarui.

  9. MemiilihMembuat grup deployment.

Langkah 6: Buat alur Anda

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:

  • SEBUAH CodeCommit tindakan di mana artefak sumber adalah definisi tugas dan AppSpec berkas.

  • Tahap sumber dengan aksi sumber Amazon ECR di mana artefak sumber adalah file gambar.

  • Tahap penyebaran dengan tindakan penyebaran Amazon ECS di mana penyebaran berjalan dengan CodeDeploy grup aplikasi dan deployment.

Untuk membuat alur dua tahap dengan wizard

  1. Masuk keAWS Management Consoledan membuka CodePipeline console dihttp://console.aws.amazon.com/codesuite/codepipeline/home.

  2. PadaSelamat datanghalamanMemulaihalaman, atauAlurhalaman, pilihMembuat Alur.

  3. Di Langkah 1: Pilih pengaturan pipa, diNama Alur, ENTERMyImagePipeline.

  4. MasukPeran layanan, PilihPeran layanan baruuntuk memungkinkan CodePipeline untuk membuat peran layanan di IAM.

  5. Biarkan pengaturan di bawahPengaturan lanjutandi default, dan kemudian memilihSelanjutnya.

  6. Di Langkah 2: Tahap menambahkan sumber, diPenyedia sumber, PilihAWS CodeCommit. MasukNama repositori, memilih nama repositori CodeCommit yang Anda buatLangkah 1: Buat CodeCommit repositori. MasukNama cabang, pilih nama cabang yang berisi pembaruan kode terbaru Anda.

    Pilih Selanjutnya.

  7. Di Langkah 3: Menambahkan tahap membangun, PilihLewati tahap membangun, dan kemudian menerima pesan peringatan dengan memilihLewatilagi. Pilih Selanjutnya.

  8. Di Langkah 4: Menambahkan tahap deploy:

    1. MasukPenyedia deploy, PilihAmazon ECS (Biru/Hijau). MasukNama aplikasi, masukkan atau pilih nama aplikasi dari daftar, seperticodedeployapp. MasukGrup deployment, masukkan atau pilih nama grup penyebaran dari daftar, seperticodedeploydeplgroup.

      catatan

      Nama “Deploy” adalah nama yang diberikan secara default ke tahap yang dibuat diLangkah 4: Deploylangkah, sama seperti “Sumber” adalah nama yang diberikan pada tahap pertama dari pipa.

    2. Di bawahDefinisi tugas Amazon ECS, PilihSourceArtifact. Di lapangan, masukkantaskdef.json.

    3. Di bawahAWS CodeDeploy File AppSpec, PilihSourceArtifact. Di lapangan, masukkanappspec.yaml.

      catatan

      Pada titik ini, jangan mengisi informasi apa pun di bawahSecara dinamis memperbarui gambar definisi tugas.

    4. Pilih Selanjutnya.

  9. MasukLangkah 5: Tinjau, tinjau informasi, lalu pilihMembuat Alur.

Untuk menambahkan tindakan sumber Amazon ECR ke pipeline Anda

Lihat saluran pipa Anda dan tambahkan tindakan sumber Amazon ECR ke saluran pipa Anda.

  1. Pilih alur Anda. Di kiri atas, pilihMengedit.

  2. Pada tahap sumber, pilihEdit tahap.

  3. Tambahkan tindakan parallel dengan memilih+ Tambahkan tindakandi samping CodeCommit tindakan sumber.

  4. MasukNama tindakan, masukkan nama (misalnya,Image).

  5. MasukPenyedia tindakan, PilihAmazon ECR.

    
                        Tambahkan tindakan sumber Amazon ECR ke pipeline Anda.
  6. MasukNama repositori, pilih nama repositori Amazon ECR Anda.

  7. MasukTanda citra, tentukan nama gambar dan versi, jika berbeda dari yang terbaru.

  8. Masukartefak output, pilih output artefak default (misalnya,MyImage) yang berisi nama gambar dan informasi URI repositori yang Anda inginkan tahap berikutnya untuk digunakan.

  9. MemiilihSimpanpada layar aksi. MemiilihSelesaidi layar panggung. MemiilihSimpanpada pipa. Sebuah pesan menunjukkan Amazon CloudWatch Aturan peristiwa yang akan dibuat untuk tindakan sumber Amazon ECR.

Untuk menghubungkan artefak sumber Anda ke aksi penyebaran

  1. MemiilihMengeditpada tahap Deploy Anda dan pilih ikon untuk mengeditAmazon ECS (Biru/Hijau)tindakan.

  2. Gulir ke bagian bawah panel. Masukartefak masukan, PilihTambahkan. Tambahkan artefak sumber dari repositori Amazon ECR baru Anda (misalnya,MyImage).

  3. MasukDefinisi Tugas, PilihSourceArtifact, dan kemudian memverifikasitaskdef.jsondimasukkan.

  4. MasukAWS CodeDeploy File AppSpec, PilihSourceArtifact, dan kemudian memverifikasiappspec.yamldimasukkan.

  5. MasukSecara dinamis memperbarui gambar definisi tugas, diMasukan Artifact dengan URI Gambar, PilihMyImage, dan kemudian masukkan teks placeholder yang digunakan dalamtaskdef.jsonberkas: IMAGE1_NAME. Pilih Simpan.

  6. DiAWS CodePipelinepane, pilihSimpan perubahan alur, dan kemudian pilihSimpan perubahan. Lihat pipa Anda yang diperbarui.

    Setelah pipa contoh ini dibuat, konfigurasi tindakan untuk entri konsol muncul dalam struktur pipa sebagai berikut:

    "configuration": { "AppSpecTemplateArtifact": "SourceArtifact", "AppSpecTemplatePath": "appspec.yaml", "TaskDefinitionTemplateArtifact": "SourceArtifact", "TaskDefinitionTemplatePath": "taskdef.json", "ApplicationName": "codedeployapp", "DeploymentGroupName": "codedeploydeplgroup", "Image1ArtifactName": "MyImage", "Image1ContainerName": "IMAGE1_NAME" },
  7. Untuk mengirimkan perubahan Anda dan memulai pembuatan pipa, pilihRilis perubahan, dan kemudian pilihRilis.

  8. Pilih tindakan penyebaran untuk melihatnya di CodeDeploy dan melihat kemajuan pergeseran lalu lintas.

    catatan

    Anda mungkin melihat langkah penyebaran yang menunjukkan waktu tunggu opsional. Secara default, CodeDeploy menunggu satu jam setelah penyebaran sukses sebelum mengakhiri set tugas asli. Anda dapat menggunakan waktu ini untuk memutar kembali atau mengakhiri tugas, tetapi penyebaran Anda sebaliknya selesai ketika set tugas dihentikan.

Langkah 7: Lakukan perubahan pada pipeline Anda dan verifikasi penyebaran

Lakukan perubahan pada gambar Anda dan kemudian dorong perubahan ke repositori Amazon ECR Anda. Hal ini memicu pipa Anda untuk menjalankan. Verifikasi bahwa perubahan sumber gambar Anda disebarkan.