Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Membuat pipeline dengan ECR sumber Amazon dan ECS -to- deployment CodeDeploy
Dalam tutorial ini, Anda mengonfigurasi pipeline yang menyebarkan aplikasi kontainer menggunakan penerapan biru/hijau yang mendukung gambar Docker. AWS CodePipeline Dalam penerapan biru/hijau, Anda dapat meluncurkan versi baru aplikasi Anda bersama versi lama dan menguji versi baru sebelum Anda mengubah rute lalu lintas. Anda juga dapat memantau proses penerapan dan memutar kembali dengan cepat jika ada masalah.
penting
Sebagai bagian dari pembuatan pipa, ember artefak S3 yang disediakan oleh pelanggan akan digunakan CodePipeline untuk artefak. (Ini berbeda dari bucket yang digunakan untuk aksi sumber S3.) Jika bucket artefak S3 berada di akun yang berbeda dari akun untuk pipeline Anda, pastikan bucket artefak S3 dimiliki oleh Akun AWS yang aman dan dapat diandalkan.
catatan
Tutorial ini untuk Amazon ECS untuk CodeDeploy tindakan penyebaran biru/hijau untuk. CodePipeline Untuk tutorial yang menggunakan tindakan penerapan ECS standar Amazon CodePipeline, lihatTutorial: Penerapan ECS Standar Amazon dengan CodePipeline.
Pipeline yang telah selesai mendeteksi perubahan pada gambar Anda, yang disimpan dalam repositori gambar seperti AmazonECR, dan digunakan CodeDeploy untuk merutekan dan menyebarkan lalu lintas ke ECS klaster Amazon dan penyeimbang beban. CodeDeploy menggunakan pendengar untuk mengalihkan lalu lintas ke port wadah yang diperbarui yang ditentukan dalam file. AppSpec Untuk informasi tentang cara penyeimbang beban, pendengar produksi, grup target, dan ECS aplikasi Amazon Anda digunakan dalam penerapan biru/hijau, lihat Tutorial: Menerapkan Layanan Amazon. ECS
Pipeline juga dikonfigurasi untuk menggunakan lokasi sumber, seperti CodeCommit, tempat definisi ECS tugas Amazon Anda disimpan. Dalam tutorial ini, Anda mengonfigurasi masing-masing sumber AWS daya ini dan kemudian membuat pipeline Anda dengan tahapan yang berisi tindakan untuk setiap sumber daya.
Pipeline 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 image Docker yang menentukan nama container dan repositori repositori image Amazon URI Anda. ECR
-
Definisi ECS tugas Amazon yang mencantumkan nama gambar Docker, nama kontainer, nama ECS layanan Amazon, dan konfigurasi penyeimbang beban.
-
CodeDeploy AppSpec File yang menentukan nama file definisi ECS tugas Amazon, 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 kait peristiwa siklus hidup penerapan.
catatan
Saat Anda melakukan perubahan ke repositori ECR gambar Amazon, tindakan sumber pipeline akan membuat imageDetail.json
file untuk komit tersebut. Untuk informasi tentang imageDetail.json
file, lihatimageDetail.json untuk tindakan penerapan ECS biru/hijau Amazon.
Saat Anda membuat atau mengedit pipeline dan memperbarui atau menentukan artefak sumber untuk tahap penerapan, pastikan untuk menunjuk ke artefak sumber dengan nama dan versi terbaru yang ingin Anda gunakan. Setelah menyiapkan pipeline, saat membuat perubahan pada definisi gambar atau tugas, Anda mungkin perlu memperbarui file artefak sumber di repositori, lalu mengedit tahap penerapan di pipeline.
Topik
- Prasyarat
- Langkah 1: Buat gambar dan dorong ke ECR repositori Amazon
- 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 ECS kluster dan layanan Amazon Anda
- Langkah 5: Buat grup CodeDeploy aplikasi dan penyebaran Anda (platform ECS komputasi)
- Langkah 6: Buat pipeline Anda
- Langkah 7: Buat perubahan pada pipeline Anda dan verifikasi penerapan
Prasyarat
Anda harus sudah membuat sumber daya berikut:
-
Sebuah CodeCommit repositori. Anda dapat menggunakan AWS CodeCommit repositori yang Anda buat. Tutorial: Buat pipeline sederhana (CodeCommitrepositori)
-
Luncurkan instance Amazon EC2 Linux 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 ECR repositori Amazon
Di bagian ini, Anda menggunakan Docker untuk membuat gambar dan kemudian menggunakan AWS CLI untuk membuat ECR repositori Amazon 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 instance Linux Anda di mana Anda telah menginstal Docker.
Tarik gambar ke bawah untuk
nginx
. Perintah ini memberikannginx:latest
gambar:docker pull nginx
-
Jalankan docker images. Anda akan melihat gambar dalam daftar.
docker images
Untuk membuat ECR repositori Amazon dan mendorong gambar Anda
-
Buat ECR repositori Amazon untuk menyimpan gambar Anda. Buat 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" } } -
Tandai 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 JSON file definisi tugas dan mendaftarkannya ke AmazonECS. 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 bernama
taskdef.json
dengan isi 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 IAMPeran Eksekusi ECS Tugas Amazon di Panduan ECS Pengembang Amazon.{ "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.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
-
AppSpec File ini digunakan untuk CodeDeploy penerapan. 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 bernama
appspec.yaml
dengan isi berikut ini. UntukTaskDefinition
, jangan mengubah 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 penerapan 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 mementaskan semua file Anda sekaligus:
git add -A
-
Jalankan perintah berikut untuk mengkomit file dengan pesan komit:
git commit -m "Added task definition files"
-
Jalankan perintah berikut untuk mendorong file dari repo lokal Anda ke CodeCommit repositori Anda:
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 beban nanti, saat Anda membuat layanan AmazonECS. Anda dapat membuat Application Load Balancer atau Network Load Balancer. Penyeimbang beban harus menggunakan a VPC dengan dua subnet publik di Availability Zone yang berbeda. Dalam langkah-langkah ini, Anda mengonfirmasi default AndaVPC, membuat penyeimbang beban, dan kemudian membuat dua grup target untuk penyeimbang beban Anda. Untuk informasi selengkapnya, lihat Grup Target untuk Penyeimbang Beban Jaringan Anda.
Untuk memverifikasi subnet default VPC dan publik
Masuk ke AWS Management Console dan buka VPC konsol Amazon di https://console.aws.amazon.com/vpc/
. -
Verifikasi default VPC untuk digunakan. Di panel navigasi, pilih Your VPCs. Catatan yang VPC menunjukkan Ya di VPC kolom Default. Ini adalah defaultnyaVPC. Ini berisi subnet default untuk Anda pilih.
-
Pilih Subnet. Pilih dua subnet yang menunjukkan Ya di kolom subnet Default.
catatan
Catat subnet IDs Anda. Anda membutuhkannya nanti dalam tutorial ini.
-
Pilih subnet, lalu pilih tab Deskripsi. Verifikasi bahwa subnet yang ingin Anda gunakan berada di Availability Zone yang berbeda.
-
Pilih subnet, lalu pilih tab Route Table. Untuk memverifikasi bahwa setiap subnet yang ingin Anda gunakan adalah subnet publik, konfirmasikan bahwa baris gateway disertakan dalam tabel rute.
Untuk membuat EC2 Application Load Balancer Amazon
Masuk ke AWS Management Console dan buka EC2 konsol Amazon 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 beban Anda.
-
Dalam Skema, pilih yang menghadap ke internet.
-
Dalam jenis alamat IP, pilih ipv4.
-
Konfigurasikan dua port pendengar untuk penyeimbang beban Anda:
-
Di bawah Protokol Load Balancer, pilih. HTTP Di bawah Port Load Balancer, masukkan.
80
-
Pilih Tambahkan pendengar.
-
Di bawah Protokol Load Balancer untuk pendengar kedua, pilih. HTTP Di bawah Port Load Balancer, masukkan.
8080
-
-
Di bawah Availability Zones VPC, di, pilih defaultVPC. 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 buat catatan 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
). -
Pada tipe Target, pilih IP.
-
Dalam Protokol pilih HTTP. Di Pelabuhan, masukkan
80
. -
Pilih Selanjutnya: Daftarkan Target.
-
-
Pilih Berikutnya: Tinjau, lalu pilih Buat.
Untuk membuat grup target kedua untuk penyeimbang beban Anda
-
Setelah penyeimbang beban 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
). -
Pada tipe Target, pilih IP.
-
Dalam Protokol pilih HTTP. Di Pelabuhan, masukkan
8080
. -
Di VPC, pilih defaultVPC.
-
Pilih Buat.
catatan
Anda harus memiliki dua grup target yang dibuat untuk penyeimbang beban Anda agar penerapan Anda berjalan. Anda hanya perlu membuat catatan ARN dari kelompok target pertama Anda. ARNIni digunakan dalam
create-service
JSON file pada langkah berikutnya.
Untuk memperbarui penyeimbang beban Anda untuk memasukkan grup target kedua Anda
-
Buka EC2 konsol Amazon. Di panel navigasi, pilih Load Balancers.
-
Pilih penyeimbang beban Anda, lalu pilih tab Listeners. 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 ECS kluster dan layanan Amazon Anda
Di bagian ini, Anda membuat ECS kluster dan layanan Amazon yang CodeDeploy merutekan lalu lintas selama penerapan (ke ECS klaster Amazon, bukan EC2 instance). Untuk membuat ECS layanan Amazon, Anda harus menggunakan nama subnet, grup keamanan, dan nilai grup target yang Anda buat dengan penyeimbang beban untuk membuat layanan Anda.
catatan
Bila Anda menggunakan langkah-langkah ini untuk membuat ECS klaster Amazon, Anda menggunakan template cluster Networking only, yang menyediakan container AWS Fargate. AWS Fargate adalah teknologi yang mengelola infrastruktur instans kontainer Anda untuk Anda. Anda tidak perlu memilih atau membuat EC2 instans Amazon secara manual untuk ECS klaster Amazon Anda.
Untuk membuat ECS cluster Amazon
Buka konsol ECS klasik Amazon di https://console.aws.amazon.com/ecs/
. -
Di panel navigasi, pilih Kluster.
-
Pilih Buat kluster.
-
Pilih template cluster Networking only yang menggunakan AWS Fargate, lalu pilih Next step.
-
Masukkan nama cluster pada halaman Configure cluster. Anda dapat menambahkan tag opsional untuk sumber daya Anda. Pilih Buat.
Untuk membuat ECS layanan Amazon
Gunakan AWS CLI untuk membuat layanan Anda di AmazonECS.
-
Buat JSON file dan beri nama
create-service.json
. Tempelkan berikut ini ke dalam JSON file.Untuk
taskDefinition
bidang tersebut, saat Anda mendaftarkan definisi tugas di AmazonECS, Anda memberinya 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 beban Anda. Langkah 3: Buat Application Load Balancer dan grup targetcatatan
Anda perlu memasukkan grup target Anda ARN dalam file ini. Buka EC2 konsol Amazon dan dari panel navigasi, di bawah LOADBALANCING, pilih Grup Target. Pilih kelompok target pertama Anda. Salin Anda ARN 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 JSON file:
penting
Pastikan untuk menyertakan
file://
sebelum nama file. Diperlukan dalam perintah ini.Contoh ini menciptakan layanan bernama
my-service
.catatan
Perintah contoh ini membuat 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 kolom 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 ECS komputasi)
Saat Anda membuat grup CodeDeploy aplikasi dan penerapan untuk platform ECS komputasi Amazon, aplikasi akan digunakan selama penerapan untuk mereferensikan grup penerapan, grup target, pendengar, 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 Deployment halaman aplikasi Anda, pilih Buat grup penerapan.
-
Dalam nama grup Deployment, masukkan nama yang menjelaskan grup penyebaran.
-
Dalam peran Layanan, pilih peran layanan yang memberikan CodeDeploy akses ke AmazonECS. Untuk membuat peran layanan baru, ikuti langkah-langkah berikut:
-
Buka IAM konsol di https://console.aws.amazon.com/iam/
). -
Dari dasbor konsol, pilih Peran.
-
Pilih 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 Berikutnya: Izin. Kebijakan yang
AWSCodeDeployRoleForECS
dikelola sudah melekat pada peran tersebut. -
Pilih Berikutnya: Tag, dan Berikutnya: Tinjau.
-
Masukkan nama untuk peran (misalnya,
CodeDeployECSRole
), lalu pilih Buat peran.
-
-
Dalam konfigurasi Lingkungan, pilih nama ECS klaster Amazon dan nama layanan Anda.
-
Dari Load balancer, pilih nama penyeimbang beban yang melayani lalu lintas ke layanan Amazon Anda. ECS
-
Dari port pendengar Produksi, pilih port dan protokol untuk pendengar yang menyajikan jalur produksi ke layanan Amazon Anda. ECS 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 beban Anda.
-
Pilih Rute lalu lintas segera untuk menentukan berapa lama setelah penerapan berhasil untuk mengalihkan lalu lintas ke tugas Amazon Anda yang diperbarui. ECS
-
Pilih Buat grup penyebaran.
Langkah 6: Buat pipeline Anda
Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
-
CodeCommit Tindakan di mana artefak sumber adalah definisi tugas dan AppSpec file.
-
Tahap sumber dengan aksi ECR sumber Amazon di mana artefak sumber adalah file gambar.
-
Tahap penerapan dengan tindakan ECS penerapan Amazon di mana penerapan berjalan dengan grup CodeDeploy aplikasi dan penerapan.
Untuk membuat pipeline 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, halaman Memulai, atau halaman Pipelines, pilih Buat pipeline.
-
Di Langkah 1: Pilih pengaturan alur, di Nama alur, masukkan
MyImagePipeline
. -
Dalam tipe Pipeline, pilih V2. Untuk informasi selengkapnya, lihat Jenis pipa. Pilih Berikutnya.
-
Di peran Layanan, pilih Peran layanan baru CodePipeline untuk memungkinkan membuat peran layananIAM.
-
Biarkan pengaturan di bawah Pengaturan lanjutan pada defaultnya, lalu pilih Berikutnya.
-
Pada Langkah 2: Tambahkan tahap sumber, di penyedia Sumber, pilih AWS CodeCommit. Dalam 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 Berikutnya.
-
Pada Langkah 3: Tambahkan tahap build, pilih Lewati tahap build, lalu terima pesan peringatan dengan memilih Lewati lagi. Pilih Berikutnya.
-
Pada Langkah 4: Tambahkan tahap penerapan:
-
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 ECS tugas Amazon, pilih SourceArtifact. Di lapangan, masukkan
taskdef.json
. -
Di bawah AWS CodeDeploy AppSpec file, pilih SourceArtifact. Di lapangan, masukkan
appspec.yaml
.catatan
Pada titik ini, jangan mengisi informasi apa pun di bawah Gambar definisi tugas perbarui secara dinamis.
-
Pilih Berikutnya.
-
-
Pada Langkah 5: Tinjau, tinjau informasinya, lalu pilih Buat pipeline.
Untuk menambahkan tindakan ECR sumber Amazon ke pipeline Anda
Lihat pipeline Anda dan tambahkan tindakan ECR sumber Amazon ke pipeline Anda.
-
Pilih pipa Anda. Di kiri atas, pilih Edit.
-
Pada tahap sumber, pilih Edit tahap.
-
Tambahkan aksi paralel dengan memilih + Tambahkan tindakan di sebelah 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 artefak Output, pilih artefak keluaran default (misalnya,
MyImage
) yang berisi nama gambar dan URI informasi repositori yang Anda inginkan untuk digunakan 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 tindakan ECR sumber Amazon.
Untuk menghubungkan artefak sumber Anda ke tindakan penerapan
-
Pilih Edit pada tahap Deploy Anda dan pilih ikon untuk mengedit tindakan Amazon ECS (Biru/Hijau).
-
Gulir ke bagian bawah panel. Di artefak Input, pilih Tambah. Tambahkan artefak sumber dari ECR repositori Amazon baru Anda (misalnya,).
MyImage
-
Dalam Definisi Tugas SourceArtifact, pilih, lalu verifikasi
taskdef.json
dimasukkan. -
Di AWS CodeDeploy AppSpec File, pilih SourceArtifact, lalu verifikasi
appspec.yaml
dimasukkan. -
Dalam Perbarui gambar definisi tugas secara dinamis, di Input Artifact with URI Image, MyImagepilih, lalu masukkan teks placeholder yang digunakan dalam file:.
taskdef.json
IMAGE1_NAME
Pilih Simpan. -
Di AWS CodePipeline panel, pilih Simpan perubahan pipeline, lalu pilih Simpan perubahan. Lihat pipeline Anda yang diperbarui.
Setelah contoh pipeline ini dibuat, konfigurasi tindakan untuk entri konsol muncul di 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 penerapan untuk melihatnya CodeDeploy dan melihat kemajuan pergeseran lalu lintas.
catatan
Anda mungkin melihat langkah penerapan yang menunjukkan waktu tunggu opsional. Secara default, CodeDeploy menunggu satu jam setelah penerapan berhasil sebelum menghentikan set tugas asli. Anda dapat menggunakan waktu ini untuk memutar kembali atau menghentikan tugas, tetapi penerapan Anda akan selesai saat set tugas dihentikan.
Langkah 7: Buat perubahan pada pipeline Anda dan verifikasi penerapan
Buat perubahan pada gambar Anda dan kemudian dorong perubahan ke ECR repositori Amazon Anda. Ini memicu pipeline Anda untuk berjalan. Verifikasi bahwa perubahan sumber gambar Anda diterapkan.