Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyebarkan layanan Amazon ECS menggunakan pengontrol pihak ketiga
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.
-
Tipe: Array objek
Wajib: Tidak
Metadata yang Anda terapkan ke layanan untuk membantu Anda mengkategorikan dan mengaturnya. Setiap tag 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 Menandai sumber daya Amazon ECS.
key
-
Tipe: String
Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.
Wajib: 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
-
Tipe: String
Batasan Panjang: Panjang minimum 0. Panjang maksimum 256.
Wajib: 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 Gunakan tag untuk penagihan.
propagateTags
-
Tipe: String
Nilai yang valid:
TASK_DEFINITION
|SERVICE
Wajib: 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. schedulingStrategy
-
Strategi penjadwalan yang akan digunakan. Layanan yang menggunakan pengendali deployment eksternal hanya mendukung strategi penjadwalan
REPLICA
. 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": "" } ], "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
Wajib: Tidak
Jenis peluncuran untuk menjalankan layanan Anda. Jika jenis peluncuran tidak ditentukan, default
capacityProviderStrategy
digunakan secara default. Untuk informasi selengkapnya, lihat Jenis ECS peluncuran Amazon.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 untuk Amazon ECS.catatan
Versi platform tidak ditentukan untuk tugas yang menggunakan jenis EC2 peluncuran.
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 Fargate, lihat. Opsi jaringan tugas Amazon ECS untuk jenis peluncuran Fargate serviceRegistries
-
Detail registri penemuan layanan yang akan ditetapkan ke layanan ini. Untuk informasi selengkapnya, lihat Gunakan penemuan layanan untuk menghubungkan layanan Amazon ECS dengan nama DNS.
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.