Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan pengontrol pihak ketiga untuk penerapan eksternal Amazon ECS
Jenis penyebaran eksternal memungkinkan Anda menggunakan pengontrol penyebaran pihak ketiga untuk kontrol penuh atas proses penyebaran untuk layanan Amazon ECS. Detail untuk layanan Anda dikelola, baik oleh tindakan API manajemen layanan (CreateService
, UpdateService
, dan DeleteService
) ataupun tindakan API manajemen set tugas (CreateTaskSet
, UpdateTaskSet
, UpdateServicePrimaryTaskSet
, dan DeleteTaskSet
). Setiap tindakan API mengelola subset parameter definisi layanan.
Tindakan API UpdateService
memperbarui jumlah yang diinginkan dan parameter masa tenggang pemeriksaan kondisi untuk suatu layanan. Jika tipe peluncuran, versi platform, detail penyeimbang beban, konfigurasi jaringan, atau penentuan tugas perlu diperbarui, maka Anda harus membuat set tugas baru.
Tindakan API UpdateTaskSet
hanya memperbarui parameter skala untuk set tugas.
Tindakan API UpdateServicePrimaryTaskSet
memodifikasi set tugas mana dalam layanan yang merupakan set tugas utama. Saat Anda memanggil tindakan API DescribeServices
, tindakan tersebut mengembalikan semua bidang yang ditentukan untuk set tugas utama. Jika set tugas utama untuk layanan diperbarui, maka nilai parameter set tugas apa pun yang ada di set tugas utama baru yang berbeda dari set tugas utama lama di layanan akan diperbarui ke nilai baru saat set tugas utama baru ditentukan. Jika tidak ada set tugas utama yang ditentukan untuk layanan, maka saat menjelaskan layanan, bidang set tugas adalah nol.
Pertimbangan penyebaran eksternal
Pertimbangkan hal berikut saat menggunakan tipe deployment eksternal:
-
Jenis penyeimbang beban yang didukung adalah Application Load Balancer atau Penyeimbang Beban Jaringan.
-
Jenis peluncuran Fargate atau tipe pengontrol
EXTERNAL
penerapan tidak mendukung strategi penjadwalan.DAEMON
Alur kerja penerapan eksternal
Berikut ini adalah alur kerja dasar untuk mengelola penyebaran eksternal di Amazon ECS.
Untuk mengelola layanan Amazon ECS menggunakan pengontrol penyebaran eksternal
-
Buat layanan Amazon ECS. Satu-satunya parameter yang diperlukan adalah nama layanan. Anda dapat menentukan parameter berikut saat membuat layanan menggunakan pengendali deployment eksternal. Semua parameter layanan lainnya ditentukan saat membuat set tugas dalam layanan.
serviceName
-
Tipe: String
Diperlukan: Ya
Nama layanan Anda. Mengizinkan hingga 255 huruf (huruf besar dan huruf kecil), angka, tanda hubung, dan garis bawah. Nama layanan harus unik dalam sebuah klaster, tetapi Anda dapat memiliki layanan yang bernama sama di beberapa klaster dalam satu Wilayah atau lebih.
desiredCount
-
Jumlah instantiasi dari tugas yang ditentukan menetapkan penentuan tugas untuk ditempatkan dan tetap berjalan dalam layanan.
deploymentConfiguration
-
Parameter deployment opsional yang mengendalikan seberapa banyak tugas yang dijalankan selama deployment dan urutan penghentian serta mulainya tugas. Untuk informasi selengkapnya, lihat deploymentConfiguration.
-
Tipe: Array objek
Diperlukan: Tidak
Metadata yang Anda terapkan ke layanan untuk membantu Anda mengkategorikan dan mengaturnya. Setiap tanda terdiri dari kunci dan nilai opsional, yang keduanya Anda tentukan. Ketika layanan dihapus, tag akan dihapus juga. Maksimal 50 tag dapat diterapkan ke layanan. Untuk informasi selengkapnya, lihat Penandaan sumber daya Amazon ECS.
key
-
Tipe: String
Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.
Diperlukan: Tidak
Satu bagian dari pasangan nilai kunci yang membentuk tanda. Kunci adalah label umum yang bertindak seperti kategori untuk nilai tanda yang lebih spesifik.
value
-
Jenis: String
Batasan Panjang: Panjang minimum 0. Panjang maksimum 256.
Diperlukan: Tidak
Bagian opsional pasangan nilai kunci yang membentuk tanda. Nilai bertindak sebagai deskriptor dalam kategori tanda (kunci).
enableECSManagedTags
-
Menentukan apakah akan menggunakan tag terkelola Amazon ECS untuk tugas dalam layanan. Untuk informasi selengkapnya, lihat Menandai sumber daya Anda untuk penagihan.
propagateTags
-
Tipe: String
Nilai yang valid:
TASK_DEFINITION
|SERVICE
Diperlukan: Tidak
Menentukan apakah akan menyalin tag dari definisi tugas atau layanan untuk tugas-tugas dalam layanan. Jika tidak ada nilai yang ditentukan, tag tidak disalin. Tag hanya dapat disalin ke tugas dalam layanan selama pembuatan layanan. Untuk menambahkan tag ke tugas setelah pembuatan layanan atau pembuatan tugas, gunakan tindakan
TagResource
API. healthCheckGracePeriodSeconds
-
Tipe: Integer
Wajib: Tidak
Periode waktu, dalam hitungan detik, bahwa penjadwal layanan Amazon ECS harus mengabaikan pemeriksaan kesehatan target Elastic Load Balancing yang tidak sehat, pemeriksaan kesehatan kontainer, dan pemeriksaan kesehatan Route 53 setelah tugas memasuki suatu keadaan.
RUNNING
Ini hanya berlaku jika layanan Anda dikonfigurasi untuk menggunakan penyeimbang beban. Jika layanan Anda memiliki penyeimbang beban yang ditentukan dan Anda tidak menentukan nilai tenggang pemeriksaan kesehatan, nilai default akan0
digunakan.Jika tugas layanan Anda membutuhkan waktu cukup lama untuk memulai dan menanggapi pemeriksaan kesehatan, Anda dapat menentukan masa tenggang pemeriksaan kesehatan hingga 2.147.483.647 detik selama penjadwal layanan ECS mengabaikan status pemeriksaan kesehatan. Masa tenggang ini dapat mencegah penjadwal layanan ECS menandai tugas sebagai tidak sehat dan menghentikannya sebelum mereka punya waktu untuk muncul.
Jika Anda tidak menggunakan Elastic Load Balancing, kami sarankan Anda menggunakan
startPeriod
parameter pemeriksaan kesehatan definisi tugas. Untuk informasi lebih lanjut, lihat Pemeriksaan Kesehatan. schedulingStrategy
-
Strategi penjadwalan yang akan digunakan. Layanan yang menggunakan pengendali deployment eksternal hanya mendukung strategi penjadwalan
REPLICA
. Untuk informasi selengkapnya, lihat Konsep penjadwal layanan. placementConstraints
-
Susunan objek batasan penempatan yang akan digunakan untuk tugas di layanan Anda. Anda dapat menentukan maksimal 10 batasan per tugas (batas ini mencakup batasan dalam penentuan tugas dan batasan yang ditentukan pada waktu aktif). Jika Anda menggunakan tipe peluncuran Fargate, batasan penempatan tugas tidak didukung.
placementStrategy
-
Strategi batasan objek yang akan digunakan untuk tugas-tugas dalam layanan Anda. Anda dapat menentukan maksimal empat aturan strategi per layanan.
Berikut ini adalah contoh penentuan layanan untuk membuat layanan menggunakan pengendali deployment eksternal.
{ "cluster": "", "serviceName": "", "desiredCount": 0, "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION" }
-
Buat set tugas awal. Set tugas berisi detail berikut tentang layanan Anda:
taskDefinition
-
Penentuan tugas untuk tugas-tugas dalam set tugas yang akan digunakan.
launchType
-
Tipe: String
Nilai yang valid:
EC2
|FARGATE
|EXTERNAL
Diperlukan: Tidak
Jenis peluncuran untuk menjalankan layanan Anda. Jika jenis peluncuran tidak ditentukan, default
capacityProviderStrategy
digunakan secara default. Untuk informasi selengkapnya, lihat Jenis peluncuran Amazon ECS.Jika
launchType
ditentukan, parametercapacityProviderStrategy
harus dihilangkan. platformVersion
-
Tipe: String
Wajib: Tidak
Versi platform tempat tugas Anda dalam layanan berjalan. Versi platform hanya ditentukan untuk tugas yang menggunakan tipe peluncuran Fargate. Jika tidak ditentukan, versi terbaru (
LATEST
) digunakan secara default.AWS Versi platform Fargate digunakan untuk merujuk ke lingkungan runtime tertentu untuk infrastruktur tugas Fargate. Saat menentukan versi
LATEST
platform saat menjalankan tugas atau membuat layanan, Anda mendapatkan versi platform terbaru yang tersedia untuk tugas Anda. Saat Anda meningkatkan layanan Anda, tugas-tugas tersebut menerima versi platform yang ditentukan pada penerapan layanan saat ini. Untuk informasi selengkapnya, lihat Versi platform Fargate Linux.catatan
Versi platform tidak ditentukan untuk tugas yang menggunakan tipe peluncuran EC2.
loadBalancers
-
Objek penyeimbang beban yang mewakili penyeimbang beban yang akan digunakan bersama layanan Anda. Saat menggunakan pengontrol penyebaran eksternal, hanya Application Load Balancer dan Network Load Balancer yang didukung. Jika Anda menggunakan Application Load Balancer, hanya satu grup target Application Load Balancer yang diizinkan per set tugas.
Cuplikan berikut menunjukkan contoh
loadBalancer
objek untuk digunakan."loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ]
catatan
Saat menentukan objek
loadBalancer
, Anda harus menentukantargetGroupArn
dan menghilangkan parameterloadBalancerName
. networkConfiguration
-
Konfigurasi jaringan untuk layanan. Parameter ini diperlukan untuk penentuan tugas yang menggunakan mode jaringan
awsvpc
untuk menerima antarmuka jaringan elastisnya sendiri, dan tidak didukung untuk mode jaringan lainnya. Untuk informasi selengkapnya tentang jaringan untuk jenis peluncuran Amazon EC2, lihat Jaringan Tugas Fargate. Untuk informasi selengkapnya tentang jaringan untuk jenis peluncuran Fargate, lihat. Jaringan tugas untuk tugas-tugas di Fargate serviceRegistries
-
Detail registri penemuan layanan yang akan ditetapkan ke layanan ini. Untuk informasi selengkapnya, lihat Penemuan Layanan .
scale
-
Persentase titik mengambang dari jumlah tugas yang diinginkan untuk menempatkan dan agar tetap berjalan di serangkaian tugas. Nilai ditetapkan sebagai total persentase dari
desiredCount
layanan. Nilai yang diterima adalah angka antara 0 hingga 100.
Berikut ini adalah contoh JSON untuk membuat set tugas untuk pengendali deployment eksternal.
{ "service": "", "cluster": "", "externalId": "", "taskDefinition": "", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "scale": { "value": null, "unit": "PERCENT" }, "clientToken": "" }
-
Saat perubahan layanan dibutuhkan, gunakan tindakan API
UpdateService
,UpdateTaskSet
, atauCreateTaskSet
tergantung pada parameter mana yang Anda perbarui. Jika Anda membuat set tugas, maka gunakan parameterscale
untuk setiap set tugas di layanan untuk menentukan berapa banyak tugas yang harus tetap berjalan di layanan. Misalnya, jika Anda memiliki layanan yang berisitasksetA
dan Anda membuattasksetB
, maka Anda dapat menguji validitastasksetB
sebelum akan menransisikan lalu lintas produksi ke sana. Anda dapat mengaturscale
untuk kedua set tugas ke100
, dan saat Anda siap untuk menransisikan semua lalu lintas produksi ketasksetB
, Anda dapat memperbaruiscale
untuktasksetA
ke0
untuk menurunkan skalanya.