Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Membuat pipeline dengan sumber Amazon ECR dan penerapan ECS-to-⸺- CodeDeploy
Dalam tutorial ini, Anda mengkonfigurasi pipeline yang menyebarkan aplikasi kontainer menggunakan penyebaran biru/hijau yang mendukung gambar Docker. AWS CodePipeline Dalam penyebaran biru/hijau, Anda dapat meluncurkan versi baru aplikasi Anda bersama versi lama dan menguji versi baru sebelum mengubah rute lalu lintas. Anda juga dapat memantau proses penyebaran dan memutar kembali dengan cepat jika ada masalah.
catatan
Tutorial ini adalah untuk Amazon ECS untuk tindakan penyebaran CodeDeploy biru/hijau untuk. CodePipeline Untuk tutorial yang menggunakan tindakan penerapan standar Amazon ECSCodePipeline, lihat. Tutorial: Penerapan Standar Amazon ECS dengan CodePipeline
Pipeline yang telah selesai mendeteksi perubahan pada gambar Anda, yang disimpan dalam repositori gambar seperti Amazon ECR, dan digunakan CodeDeploy untuk merutekan dan menyebarkan lalu lintas ke klaster dan penyeimbang beban Amazon ECS. CodeDeploymenggunakan pendengar untuk mengubah rute lalu lintas ke port kontainer diperbarui ditentukan dalam file. AppSpec Untuk informasi tentang cara penyeimbang muatan, listener produksi, grup target, dan aplikasi Amazon ECS Anda digunakan dalam penerapan biru/hijau, lihat Tutorial: Menerapkan Layanan Amazon ECS.
Pipeline juga dikonfigurasi untuk menggunakan lokasi sumber, sepertiCodeCommit, tempat definisi tugas Amazon ECS Anda disimpan. Dalam tutorial ini, Anda mengkonfigurasi masing-masing AWS sumber daya ini dan kemudian membuat pipeline Anda dengan tahapan yang berisi tindakan untuk setiap sumber daya.
Pipeline pengiriman berkelanjutan Anda akan secara otomatis membangun dan menerapkan gambar kontainer setiap kali kode sumber diubah atau gambar dasar baru diunggah ke Amazon ECR.
Aliran ini menggunakan artefak berikut:
-
File image 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 penyeimbang muatan.
-
CodeDeployAppSpecFile yang menentukan nama file definisi tugas Amazon ECS, nama kontainer aplikasi yang diperbarui, dan port kontainer tempat CodeDeploy mengubah rute lalu lintas produksi. Ini juga dapat menentukan konfigurasi jaringan opsional dan fungsi Lambda yang dapat Anda jalankan selama kait peristiwa siklus hidup penerapan.
catatan
Saat Anda melakukan perubahan ke repositori gambar Amazon ECR Anda, tindakan sumber pipeline akan membuat imageDetail.json
file untuk komit tersebut. Untuk informasi tentang imageDetail.json
file, 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 menyiapkan pipeline, saat Anda membuat perubahan pada definisi gambar atau tugas, Anda mungkin perlu memperbarui file artefak sumber di repositori Anda dan kemudian mengedit tahap penyebaran di pipeline Anda.
Topik
- Prasyarat
- Langkah 1: Buat gambar dan dorong ke repositori Amazon ECR
- Langkah 2: Buat definisi tugas dan file AppSpec sumber dan dorong ke CodeCommit repositori
- Langkah 3: Buat Application Load Balancer dan grup target
- Langkah 4: Buat klaster dan layanan Amazon ECS Anda
- Langkah 5: Buat grup CodeDeploy aplikasi dan penyebaran Anda (platform komputasi ECS)
- Langkah 6: Buat pipeline Anda
- Langkah 7: Lakukan perubahan pada pipeline Anda dan verifikasi penyebaran
Prasyarat
Anda harus telah membuat sumber daya berikut:
-
Sebuah CodeCommit repositori. Anda dapat menggunakan AWS CodeCommit repositori yang Anda buat. Tutorial: 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: Buat gambar dan dorong ke repositori Amazon ECR
Di bagian ini, Anda menggunakan Docker untuk membuat gambar dan kemudian menggunakan AWS CLI untuk membuat repositori Amazon ECR dan mendorong gambar ke repositori.
catatan
Jika Anda sudah memiliki gambar yang ingin Anda gunakan, Anda dapat melewati langkah ini.
Untuk membuat gambar
-
Masuk ke instans Linux Anda di mana Anda menginstal Docker.
Tarik ke bawah gambar untuk
nginx
. Perintah ini menyediakannginx:latest
gambar:docker pull nginx
-
Jalankan docker images. Anda akan melihat gambar dalam daftar.
docker images
Untuk membuat repositori Amazon ECR dan mendorong gambar Anda
-
Buat repositori Amazon ECR untuk menyimpan gambar Anda. Membuat catatan
repositoryUri
di output.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" } } -
Tag gambar dengan
repositoryUri
nilai dari langkah sebelumnya.docker tag nginx:latest
aws_account_id
.dkr.ecr.us-east-1
.amazonaws.com/nginx:latest -
Jalankan aws ecr get-login-password perintah, seperti yang ditunjukkan dalam contoh ini untuk
us-west-2
Region dan ID akun 111122223333.aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com/nginx
-
Dorong gambar ke Amazon ECR menggunakan
repositoryUri
dari langkah sebelumnya.docker push 111122223333.dkr.ecr.
us-east-1
.amazonaws.com/nginx:latest
Langkah 2: Buat definisi tugas dan file AppSpec sumber dan dorong ke CodeCommit repositori
Di bagian ini, Anda membuat file JSON definisi tugas dan mendaftarkannya dengan Amazon ECS. Anda kemudian membuat AppSpec file untuk CodeDeploy dan menggunakan klien Git Anda untuk mendorong file ke CodeCommit repositori Anda.
Untuk membuat definisi tugas untuk gambar Anda
-
Buat file yang diberi nama
taskdef.json
dengan konten berikut ini. Untukimage
, masukkan nama gambar Anda, seperti nginx. Nilai ini diperbarui saat pipeline Anda berjalan.catatan
Pastikan bahwa peran eksekusi yang ditentukan dalam definisi tugas berisi
AmazonECSTaskExecutionRolePolicy
. Untuk informasi selengkapnya, lihat Peran IAM Eksekusi Tugas Amazon ECS dalam Panduan Pengembang 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" } -
Daftarkan definisi tugas Anda dengan
taskdef.json
file tersebut.aws ecs register-task-definition --cli-input-json file://taskdef.json
-
Setelah definisi tugas terdaftar, edit file Anda untuk menghapus nama gambar dan sertakan teks
<IMAGE1_NAME>
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" }
Untuk membuat AppSpec file
-
AppSpecFile ini digunakan untuk CodeDeploy penyebaran. 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 selengkapnya tentang AppSpec file, termasuk contoh, lihat Referensi CodeDeploy AppSpec File.
Buat file yang diberi nama
appspec.yaml
dengan konten berikut ini. UntukTaskDefinition
, jangan ubah teks<TASK_DEFINITION>
placeholder. Nilai ini diperbarui saat pipeline 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 Anda
-
Dorong atau unggah file ke CodeCommit repositori Anda. File-file ini adalah artefak sumber yang dibuat oleh wizard Create pipeline untuk tindakan penyebaran Anda. CodePipeline File Anda akan terlihat seperti ini di direktori lokal Anda:
/tmp |my-demo-repo |-- appspec.yaml |-- taskdef.json
-
Pilih metode yang ingin Anda gunakan untuk mengunggah file Anda:
-
Untuk menggunakan baris perintah git Anda dari repositori kloning di komputer lokal Anda:
-
Ubah direktori ke repositori lokal Anda:
(For Linux, macOS, or Unix)
cd /tmp/my-demo-repo(For Windows)
cd c:\temp\my-demo-repo -
Jalankan perintah berikut untuk tahap semua file Anda sekaligus:
git add -A
-
Jalankan perintah berikut untuk melakukan file dengan pesan komit:
git commit -m "Added task definition files"
-
Jalankan perintah berikut untuk mendorong file dari repo lokal Anda ke repositori AndaCodeCommit:
git push
-
-
Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda:
-
Buka CodeCommit konsol, dan pilih repositori Anda dari daftar Repositori.
-
Pilih Tambahkan file, lalu pilih Unggah file.
-
Pilih Pilih file, lalu telusuri file Anda. Lakukan perubahan dengan memasukkan nama pengguna dan alamat email Anda. Pilih Perubahan commit.
-
Ulangi langkah ini untuk setiap file yang ingin Anda unggah.
-
-
Langkah 3: Buat Application Load Balancer dan grup target
Di bagian ini, Anda membuat Amazon EC2 Application Load Balancer. 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 muatan harus menggunakan VPC dengan dua subnet publik di Availability Zone yang berbeda. Dalam langkah-langkah ini, Anda mengonfirmasi VPC default Anda, membuat penyeimbang muatan, dan kemudian membuat dua grup target untuk penyeimbang muatan Anda. Untuk informasi selengkapnya, lihat Grup Target untuk Penyeimbang Beban Jaringan Anda.
Untuk memverifikasi VPC default dan subnet publik
Masuk ke AWS Management Console dan buka konsol Amazon VPC di https://console.aws.amazon.com/vpc/
. -
Verifikasi VPC default untuk digunakan. Pada panel navigasi, pilih VPC Anda. Perhatikan VPC mana yang menunjukkan Ya di kolom Default VPC. Ini adalah VPC default. Ini berisi subnet default bagi Anda untuk memilih.
-
Pilih Subnet. Pilih dua subnet yang menunjukkan Ya di kolom subnet Default.
catatan
Catat ID subnet Anda. Anda membutuhkannya nanti dalam tutorial ini.
-
Pilih subnet, lalu pilih tab Deskripsi. Pastikan subnet yang ingin Anda gunakan berada di Availability Zone yang berbeda.
-
Pilih subnet, dan kemudian pilih tab Tabel Rute. Untuk memverifikasi bahwa setiap subnet yang ingin Anda gunakan adalah subnet publik, konfirmasikan bahwa baris gateway disertakan dalam tabel rute.
Untuk membuat Application Load Balancer Amazon EC2
Masuk ke AWS Management Console dan buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/
. -
Di panel navigasi, pilih Load Balancers.
-
Pilih Buat Penyeimbang Beban.
-
Pilih Application Load Balancer, lalu pilih Create.
-
Di Nama, masukkan nama penyeimbang muatan Anda.
-
Dalam Skema, pilih menghadap internet.
-
Dalam jenis alamat IP, pilih ipv4.
-
Konfigurasikan dua port listener untuk load balancer Anda:
-
Di bawah Load Balancer Protocol, pilih HTTP. Di bawah Load Balancer Port, masukkan
80
. -
Pilih Tambahkan pendengar.
-
Di bawah Load Balancer Protocol untuk listener kedua, pilih HTTP. Di bawah Load Balancer Port, masukkan
8080
.
-
-
Di bawah Availability Zone, di VPC, pilih VPC default. Selanjutnya, pilih dua subnet default yang ingin Anda gunakan.
-
Pilih Selanjutnya: Konfigurasikan Pengaturan Keamanan.
-
Pilih Selanjutnya: Konfigurasikan Grup Keamanan.
-
Pilih Pilih grup keamanan yang ada, dan catat ID grup keamanan.
-
Pilih Selanjutnya: Konfigurasi Perutean.
-
Di Grup target, pilih Grup target baru dan konfigurasikan grup target pertama Anda:
-
Di Nama, masukkan nama grup target (misalnya,
target-group-1
). -
Di Jenis target, pilih IP.
-
Di Protokol pilih HTTP. Di Port, masukkan
80
. -
Pilih Selanjutnya: Daftarkan Target.
-
-
Pilih Berikutnya: Tinjau, lalu pilih Buat.
Untuk membuat grup target kedua untuk penyeimbang muatan
-
Setelah penyeimbang muatan Anda disediakan, buka konsol Amazon EC2. Di panel navigasi, pilih Target Groups.
-
PilihBuat grup target.
-
Di Nama, masukkan nama grup target (misalnya,
target-group-2
). -
Di Jenis target, pilih IP.
-
Di Protokol pilih HTTP. Di Port, masukkan
8080
. -
Di VPC, pilih VPC default.
-
Pilih Create (Buat).
catatan
Anda harus memiliki dua grup target yang dibuat untuk penyeimbang muatan Anda agar penyebaran Anda dapat berjalan. Anda hanya perlu membuat catatan ARN kelompok target pertama Anda. ARN ini digunakan dalam file
create-service
JSON pada langkah berikutnya.
Untuk memperbarui penyeimbang muatan Anda untuk menyertakan grup target kedua
-
Buka konsol Amazon EC2. Di panel navigasi, pilih Load Balancers.
-
Pilih penyeimbang muatan Anda, lalu pilih tab Pendengar. Pilih listener dengan port 8080, lalu pilih Edit.
-
Pilih ikon pensil di sebelah Teruskan ke. Pilih grup target kedua Anda, lalu pilih tanda centang. Pilih Perbarui untuk menyimpan pembaruan.
Langkah 4: Buat klaster dan layanan Amazon ECS Anda
Di bagian ini, Anda membuat klaster dan layanan Amazon ECS di mana 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.
catatan
Saat Anda menggunakan langkah-langkah ini untuk membuat klaster Amazon ECS, Anda menggunakan template klaster Networking only, yang menyediakan AWS kontainer Fargate. AWS Fargate adalah teknologi yang mengelola infrastruktur instance kontainer Anda untuk Anda. Anda tidak perlu memilih atau membuat instans Amazon EC2 secara manual untuk klaster Amazon ECS Anda.
Membuat klaster Amazon ECS
Buka konsol klasik Amazon ECS di https://console.aws.amazon.com/ecs/.
-
Di panel navigasi, pilih Kluster.
-
Pilih Buat kluster.
-
Pilih template klaster Networking only yang menggunakan AWS Fargate, lalu pilih Langkah berikutnya.
-
Masukkan nama cluster pada halaman Configure cluster. Anda dapat menambahkan tag opsional untuk sumber daya Anda. Pilih Create (Buat).
Membuat layanan Amazon ECS
Gunakan AWS CLI untuk membuat layanan Anda di Amazon ECS.
-
Buat file JSON dan beri nama.
create-service.json
Tempel yang berikut ini ke dalam file JSON.Untuk
taskDefinition
bidang tersebut, saat Anda mendaftarkan definisi tugas di Amazon ECS, Anda memberikannya keluarga. Ini mirip dengan nama untuk beberapa versi definisi tugas, 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 penyeimbang muatan. Langkah 3: Buat Application Load Balancer dan grup targetcatatan
Anda perlu menyertakan ARN grup target Anda dalam file ini. Buka konsol Amazon EC2 dan dari panel navigasi, di bawah LOAD BALANCING, pilih Grup Target. Pilih grup target pertama Anda. Salin ARN Anda dari tab Deskripsi.
{ "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" } } } -
Jalankan create-service perintah, tentukan file JSON:
penting
Pastikan untuk menyertakan
file://
sebelum nama file. Diperlukan dalam perintah ini.Contoh ini menciptakan layanan bernama
my-service
.catatan
Perintah contoh 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.
-
Jalankan describe-services perintah untuk memverifikasi bahwa layanan Anda telah dibuat.
aws ecs describe-services --cluster
cluster-name
--servicesservice-name
Langkah 5: Buat grup CodeDeploy aplikasi dan penyebaran Anda (platform komputasi ECS)
Saat Anda membuat grup CodeDeploy aplikasi dan penerapan untuk platform komputasi Amazon ECS, aplikasi ini digunakan selama penerapan untuk mereferensikan grup penyebaran, grup target, listener, dan perilaku pengalihan rute lalu lintas yang benar.
Untuk membuat CodeDeploy aplikasi
-
Buka CodeDeploy konsol dan pilih Buat aplikasi.
-
Di Nama aplikasi, masukkan nama yang ingin Anda gunakan.
-
Di platform Compute, pilih Amazon ECS.
-
Pilih Create application (Buat aplikasi).
Untuk membuat CodeDeploy grup penyebaran
-
Pada tab Grup penyebaran halaman aplikasi Anda, pilih Buat grup penyebaran.
-
Di Nama grup Deployment, masukkan nama yang menggambarkan grup penyebaran.
-
Dalam Peran Layanan, pilih peran layanan yang memberikan CodeDeploy akses ke Amazon ECS. Untuk membuat peran layanan baru, ikuti langkah-langkah berikut:
-
Buka konsol IAM di https://console.aws.amazon.com/iam/).
-
Dari dasbor konsol, pilih Peran.
-
Pilih Create role (Buat peran).
-
Di bawah Pilih jenis entitas tepercaya, pilih Layanan AWS. Di bawah Pilih kasus penggunaan, pilih CodeDeploy. Di bawah Pilih kasus penggunaan Anda, pilih CodeDeploy- ECS. Pilih Next: Permissions (Selanjutnya: Izin). Kebijakan yang
AWSCodeDeployRoleForECS
dikelola sudah melekat pada peran tersebut. -
Pilih Berikutnya: Tag, dan Berikutnya: Review.
-
Masukkan nama untuk peran (misalnya,
CodeDeployECSRole
), lalu pilih Buat peran.
-
-
Dalam konfigurasi Lingkungan, pilih nama klaster Amazon ECS dan nama layanan Anda.
-
Dari Load balancer, pilih nama load balancer yang melayani lalu lintas ke layanan Amazon ECS Anda.
-
Dari port Production listener, pilih port dan protokol untuk listener yang menyajikan trac produksi ke layanan Amazon ECS Anda. Dari port Test listener, pilih port dan protokol untuk test listener.
-
Dari Nama grup target 1 dan Nama grup target 2, pilih grup target yang digunakan untuk merutekan lalu lintas selama penyebaran Anda. Pastikan bahwa ini adalah kelompok target yang Anda buat untuk penyeimbang muatan Anda.
-
Pilih Ubah rute lalu lintas segera untuk menentukan berapa lama setelah penerapan berhasil mengubah rute lalu lintas ke tugas Amazon ECS Anda yang diperbarui.
-
Pilih Buat grup penyebaran.
Langkah 6: Buat pipeline Anda
Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
-
Sebuah CodeCommit tindakan di mana artefak sumber adalah definisi tugas dan AppSpec file.
-
Tahap sumber dengan aksi sumber Amazon ECR di mana artefak sumber adalah file gambar.
-
Tahap penerapan dengan tindakan penerapan Amazon ECS di mana penerapan berjalan dengan grup aplikasi dan CodeDeploy penerapan.
Untuk membuat pipa dua tahap dengan wizard
Masuk ke AWS Management Console dan buka CodePipeline konsol di http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Pada halaman Selamat Datang, Memulai halaman, atau halaman Pipelines, pilih Buat pipeline.
-
Di Langkah 1: Pilih pengaturan alur, di Nama alur, masukkan
MyImagePipeline
. -
Dalam peran Layanan, pilih Peran layanan baru untuk memungkinkan CodePipeline untuk membuat peran layanan dalam IAM.
-
Biarkan pengaturan di bawah Pengaturan lanjutan pada defaultnya, lalu pilih Berikutnya.
-
Di Langkah 2: Tambahkan tahap sumber, di Penyedia sumber, pilih AWS CodeCommit. Di Nama repositori, pilih nama CodeCommit repositori yang Anda buat. Langkah 1: Buat CodeCommit repositori Di Nama cabang, pilih nama cabang yang berisi pembaruan kode terbaru Anda.
Pilih Selanjutnya.
-
Pada Langkah 3: Tambahkan tahap build, pilih Lewati tahap pembangunan, lalu terima pesan peringatan dengan memilih Lewati lagi. Pilih Selanjutnya.
-
Pada Langkah 4: Tambahkan tahap penyebaran:
-
Di Penyedia Deploy, pilih Amazon ECS (Biru/Hijau). Di Nama aplikasi, masukkan atau pilih nama aplikasi dari daftar, seperti
codedeployapp
. Di grup Deployment, masukkan atau pilih nama grup penyebaran dari daftar, seperti.codedeploydeplgroup
catatan
Nama “Deploy” adalah nama yang diberikan secara default ke tahap yang dibuat di Langkah 4: Deploy step, sama seperti “Source” adalah nama yang diberikan untuk tahap pertama pipeline.
-
Di bawah definisi tugas Amazon ECS, pilih SourceArtifact. Di lapangan, masukkan
taskdef.json
. -
Di bawah AWSCodeDeployAppSpecfile, pilih SourceArtifact. Di lapangan, masukkan
appspec.yaml
.catatan
Pada titik ini, jangan mengisi informasi apa pun di bawah Perbarui gambar definisi tugas secara dinamis.
-
Pilih Selanjutnya.
-
-
Pada Langkah 5: Tinjau, tinjau informasinya, lalu pilih Buat pipeline.
Untuk menambahkan aksi sumber Amazon ECR ke pipeline Anda
Lihat pipeline Anda dan tambahkan aksi sumber Amazon ECR ke pipeline Anda.
-
Pilih pipa Anda. Di kiri atas, pilih Edit.
-
Pada tahap sumber, pilih Edit stage.
-
Tambahkan tindakan paralel dengan memilih+Tambahkan tindakan di samping tindakan CodeCommit sumber Anda.
-
Di Nama tindakan, masukkan nama (misalnya,
Image
). -
Di penyedia Action, pilih Amazon ECR.
-
Dalam nama Repositori, pilih nama repositori Amazon ECR Anda.
-
Di Tag gambar, tentukan nama dan versi gambar, jika berbeda dari yang terbaru.
-
Di Output artefak, pilih artefak keluaran default (misalnya,
MyImage
) yang berisi nama gambar dan informasi URI repositori yang ingin Anda gunakan pada tahap berikutnya. -
Pilih Simpan di layar tindakan. Pilih Selesai di layar panggung. Pilih Simpan di pipa. Pesan menunjukkan aturan Amazon CloudWatch Events yang akan dibuat untuk aksi sumber Amazon ECR.
Untuk menghubungkan artefak sumber Anda ke aksi penyebaran
-
Pilih Edit pada tahap Deploy Anda dan pilih ikon untuk mengedit aksi Amazon ECS (Biru/Hijau).
-
Gulir ke bagian bawah panel. Di Artefak masukan, pilih Tambah. Tambahkan artefak sumber dari repositori Amazon ECR baru Anda (misalnya,).
MyImage
-
Di Definisi Tugas SourceArtifact, pilih, lalu verifikasi
taskdef.json
dimasukkan. -
Di AWSCodeDeployAppSpecFile, pilih SourceArtifact, dan kemudian verifikasi
appspec.yaml
dimasukkan. -
Dalam dinamis memperbarui gambar definisi tugas, di Artefak Masukan dengan Gambar URI, pilih MyImage, dan kemudian masukkan teks placeholder yang digunakan dalam file:.
taskdef.json
IMAGE1_NAME
Pilih Save (Simpan). -
Di AWS CodePipeline panel, pilih Simpan perubahan pipeline, lalu pilih Simpan perubahan. Lihat pipeline yang diperbarui.
Setelah contoh pipeline ini dibuat, konfigurasi tindakan untuk entri konsol muncul dalam struktur pipeline sebagai berikut:
"configuration": { "AppSpecTemplateArtifact": "SourceArtifact", "AppSpecTemplatePath": "appspec.yaml", "TaskDefinitionTemplateArtifact": "SourceArtifact", "TaskDefinitionTemplatePath": "taskdef.json", "ApplicationName": "codedeployapp", "DeploymentGroupName": "codedeploydeplgroup", "Image1ArtifactName": "MyImage", "Image1ContainerName": "IMAGE1_NAME" },
-
Untuk mengirimkan perubahan dan memulai pembuatan pipeline, pilih Rilis perubahan, lalu pilih Rilis.
-
Pilih tindakan penyebaran untuk melihatnya 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 berhasil sebelum mengakhiri set tugas asli. Anda dapat menggunakan waktu ini untuk memutar kembali atau mengakhiri tugas, tetapi penerapan Anda akan selesai saat kumpulan tugas dihentikan.
Langkah 7: Lakukan perubahan pada pipeline Anda dan verifikasi penyebaran
Buat perubahan pada gambar Anda dan kemudian dorong perubahan ke repositori Amazon ECR Anda. Ini memicu pipa Anda untuk berjalan. Verifikasi bahwa perubahan sumber gambar Anda diterapkan.