Parameter definisi ECS layanan Amazon - Amazon Elastic Container Service

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

Parameter definisi ECS layanan Amazon

Definisi layanan mendefinisikan cara menjalankan ECS layanan Amazon Anda. Parameter berikut dapat ditetapkan dalam ketentuan layanan.

Tipe peluncuran

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, parameter capacityProviderStrategy harus dihilangkan.

Strategi penyedia kapasitas

capacityProviderStrategy

Tipe: Array objek

Wajib: Tidak

Strategi penyedia kapasitas untuk digunakan untuk layanan.

Strategi penyedia kapasitas terdiri dari satu penyedia kapasitas atau lebih bersama dengan base dan weight yang ditetapkan padanya. Penyedia kapasitas harus dikaitkan dengan klaster sebelum ditentukan dalam strategi penyedia kapasitas. PutClusterCapacityProviders APIIni digunakan untuk mengaitkan penyedia kapasitas dengan cluster. Hanya penyedia kapasitas dengan status ACTIVE atau UPDATING yang dapat digunakan.

Jika capacityProviderStrategy ditetapkan, parameter launchType harus dihilangkan. Jika tidak ada capacityProviderStrategy atau launchType ditentukan, defaultCapacityProviderStrategy untuk klaster digunakan.

Jika Anda ingin menentukan penyedia kapasitas yang menggunakan grup Auto Scaling, penyedia kapasitas harus sudah dibuat. Penyedia kapasitas baru dapat dibuat dengan CreateCapacityProvider API operasi.

Untuk menggunakan penyedia kapasitas AWS Fargate, tentukan penyedia FARGATE_SPOT kapasitas FARGATE atau penyedia. Penyedia kapasitas AWS Fargate tersedia untuk semua akun dan hanya perlu dikaitkan dengan cluster yang akan digunakan.

PutClusterCapacityProviders APIOperasi ini digunakan untuk memperbarui daftar penyedia kapasitas yang tersedia untuk cluster setelah cluster dibuat.

capacityProvider

Tipe: String

Diperlukan: Ya

Nama pendek atau nama sumber daya Amazon lengkap (ARN) dari penyedia kapasitas.

weight

Jenis: Integer

Kisaran yang valid: Bilangan bulat antara 0 dan 1.000.

Wajib: Tidak

Nilai bobot menunjukkan persentase relatif dari jumlah total tugas yang diluncurkan yang menggunakan penyedia kapasitas yang ditentukan.

Misalnya, asumsikan bahwa Anda memiliki strategi yang berisi dua penyedia kapasitas dan keduanya memiliki bobot satu. Ketika basis terpenuhi, tugas-tugas terbagi secara merata di dua penyedia kapasitas. Dengan menggunakan logika yang sama, asumsikan bahwa Anda menentukan bobot 1 untuk capacityProviderA dan berat 4 untuk capacityProviderB. Kemudian, untuk setiap satu tugas yang dijalankan menggunakan capacityProviderA, empat tugas menggunakan capacityProviderB.

base

Jenis: Integer

Kisaran valid: Bilangan bulat antara 0 dan 100.000.

Wajib: Tidak

Nilai dasar menunjuk berapa banyak tugas, minimal, yang akan berjalan di penyedia kapasitas yang ditentukan. Hanya satu penyedia kapasitas dalam strategi penyedia kapasitas dapat memiliki basis yang ditentukan.

Ketentuan tugas

taskDefinition

Tipe: String

Wajib: Tidak

Nama Sumber Daya Amazon revision (family:revision) family dan (ARN) atau lengkap dari definisi tugas yang akan dijalankan di layanan Anda. Jika a revision tidak ditentukan, ACTIVE revisi terbaru dari keluarga yang ditentukan akan digunakan.

Ketentuan tugas harus ditentukan ketika menggunakan pembaruan bergulir (ECS) pengendali deployment.

Sistem operasi platform

platformFamily

Jenis: string

Wajib: Bersyarat

Standar: Linux

Parameter ini diperlukan untuk ECS layanan Amazon yang dihosting di Fargate.

Parameter ini diabaikan untuk ECS layanan Amazon yang dihosting di AmazonEC2.

Sistem operasi pada kontainer yang menjalankan layanan. Nilai yang valid adalahLINUX,WINDOWS_SERVER_2019_FULL,WINDOWS_SERVER_2019_CORE,WINDOWS_SERVER_2022_FULL, danWINDOWS_SERVER_2022_CORE.

platformFamilyNilai untuk setiap tugas yang Anda tentukan untuk layanan harus sesuai dengan platformFamily nilai layanan. Misalnya, jika Anda mengatur platformFamily keWINDOWS_SERVER_2019_FULL, platformFamily nilai untuk semua tugas harusWINDOWS_SERVER_2019_FULL.

Versi platform

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.

Klaster

cluster

Tipe: String

Wajib: Tidak

Nama pendek atau Nama Sumber Daya Amazon lengkap (ARN) dari cluster tempat menjalankan layanan Anda. Jika Anda tidak menentukan cluster, default cluster diasumsikan.

Nama 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.

Strategi penjadwalan

schedulingStrategy

Tipe: String

Nilai yang valid: REPLICA | DAEMON

Wajib: Tidak

Strategi penjadwalan yang boleh digunakan. Jika strategi penjadwalan tidak ditentukan, maka strategi REPLICA digunakan. Untuk informasi selengkapnya, lihat ECSLayanan Amazon.

Ada dua strategi penjadwal layanan yang tersedia:

  • REPLICAStrategi penjadwalan replika menempatkan dan mempertahankan jumlah tugas yang diinginkan di seluruh klaster Anda. Secara default tugas tersebar di seluruh Availability Zone. Anda dapat menggunakan strategi penempatan tugas dan kendala untuk menyesuaikan keputusan penempatan tugas. Untuk informasi selengkapnya, lihat Strategi replika.

  • DAEMON—Strategi penjadwalan daemon menerapkan tepat satu tugas pada setiap instance kontainer aktif yang memenuhi semua batasan penempatan tugas yang Anda tentukan di cluster Anda. Saat menggunakan strategi ini, tidak perlu menentukan jumlah tugas yang diinginkan, strategi penempatan tugas, atau menggunakan kebijakan Auto Scaling Layanan. Untuk informasi selengkapnya, lihat Strategi daemon.

    catatan

    Tugas Fargate tidak mendukung strategi DAEMON penjadwalan.

Jumlah yang diinginkan

desiredCount

Tipe: Integer

Wajib: Tidak

Jumlah instantiasi definisi tugas yang ditentukan untuk ditempatkan dan terus berjalan di layanan Anda.

Parameter ini diperlukan jika strategi penjadwalan REPLICA digunakan. Jika layanan menggunakan strategi penjadwalan DAEMON, parameter ini bersifat opsional.

Konfigurasi deployment

deploymentConfiguration

Tipe: Objek

Wajib: Tidak

Parameter deployment opsional yang mengendalikan berapa banyak tugas yang berjalan selama deployment dan pengurutan tugas berhenti dan memulai.

maximumPercent

Tipe: Integer

Wajib: Tidak

Jika layanan menggunakan tipe penerapan rolling update (ECS), maximumPercent parameter tersebut mewakili batas atas jumlah tugas layanan Anda yang diizinkan dalam RUNNINGSTOPPING, atau PENDING status selama penerapan. Hal ini dinyatakan sebagai persentase dari desiredCount yang dibulatkan ke bawah ke bilangan bulat terdekat. Anda dapat menggunakan parameter ini untuk menentukan ukuran batch deployment. Misalnya, jika layanan Anda menggunakan penjadwal REPLICA layanan dan memiliki desiredCount empat tugas dan maximumPercent nilai 200%, penjadwal mungkin memulai empat tugas baru sebelum menghentikan empat tugas lama. Ini asalkan sumber daya cluster yang diperlukan untuk melakukan ini tersedia. Nilai maximumPercent default untuk layanan yang menggunakan penjadwal layanan REPLICA adalah 200%.

Jika layanan Anda menggunakan jenis penjadwal DAEMON layanan, maximumPercent harus tetap pada 100%. Ini adalah nilai default.

Jumlah maksimum tugas selama deployment adalah desiredCount dikalikan dengan maximumPercent/100, dibulatkan ke bawah ke nilai integer terdekat.

Jika layanan menggunakan jenis dan tugas biru/hijau (CODE_DEPLOY) atau EXTERNAL penerapan yang menggunakan tipe EC2 peluncuran, nilai persen maksimum disetel ke nilai default. Nilai digunakan untuk menentukan batas atas jumlah tugas dalam layanan yang tetap dalam RUNNING status saat instance kontainer berada dalam DRAINING status.

catatan

Anda tidak dapat menentukan maximumPercent nilai kustom untuk layanan yang menggunakan jenis biru/hijau (CODE_DEPLOY) atau EXTERNAL penerapan dan memiliki tugas yang menggunakan jenis peluncuran. EC2

Jika tugas dalam layanan menggunakan tipe peluncuran Fargate, nilai persen maksimum tidak digunakan, meskipun dikembalikan saat mendeskripsikan layanan Anda.

minimumHealthyPercent

Tipe: Integer

Wajib: Tidak

Jika layanan menggunakan tipe penerapan rolling update (ECS), layanan tersebut minimumHealthyPercent mewakili batas bawah pada jumlah tugas layanan Anda yang harus tetap berada dalam RUNNING status selama penerapan. Ini dinyatakan sebagai persentase dari desiredCount yang dibulatkan ke bilangan bulat terdekat. Anda dapat menggunakan parameter ini untuk menyebarkan tanpa menggunakan kapasitas cluster tambahan. Misalnya, jika layanan Anda memiliki desiredCount empat tugas dan 50%, penjadwal layanan mungkin menghentikan dua tugas yang ada untuk membebaskan kapasitas klaster sebelum memulai dua tugas baru. minimumHealthyPercent

Untuk layanan yang tidak menggunakan penyeimbang beban, pertimbangkan hal berikut:

  • Sebuah layanan dianggap baik jika semua kontainer penting dalam tugas dalam layanan lulus pemeriksaan kondisi.

  • Jika tugas tidak memiliki wadah penting dengan pemeriksaan kesehatan yang ditentukan, penjadwal layanan menunggu selama 40 detik setelah tugas mencapai RUNNING keadaan sebelum tugas dihitung terhadap total persen sehat minimum.

  • Jika suatu tugas memiliki satu atau lebih wadah penting dengan pemeriksaan kesehatan yang ditentukan, penjadwal layanan menunggu tugas mencapai status sehat sebelum menghitungnya ke total persen sehat minimum. Sebuah tugas dianggap baik ketika semua kontainer penting dalam tugas telah lulus pemeriksaan kondisi. Jumlah waktu tunggu penjadwal layanan ditentukan oleh pengaturan pemeriksaan kondisi kontainer. Untuk informasi selengkapnya, lihat Pemeriksaan kondisi.

Untuk layanan yang menggunakan load balancer, perhatikan hal berikut:

  • Jika suatu tugas tidak memiliki wadah penting dengan pemeriksaan kesehatan yang ditentukan, penjadwal layanan menunggu pemeriksaan kesehatan kelompok sasaran penyeimbang beban untuk mengembalikan status sehat sebelum menghitung tugas menuju total persen sehat minimum.

  • Jika tugas memiliki wadah penting dengan pemeriksaan kesehatan yang ditentukan, penjadwal layanan menunggu tugas untuk mencapai status sehat dan pemeriksaan kesehatan kelompok target penyeimbang beban untuk mengembalikan status sehat sebelum menghitung tugas menuju total persen sehat minimum.

Nilai default untuk layanan replika untuk minimumHealthyPercent adalah 100%. minimumHealthyPercentNilai default untuk layanan yang menggunakan jadwal DAEMON layanan adalah 0% untuk AWS CLI AWS SDKs, the, APIs dan 50% untuk AWS Management Console.

Jumlah minimal tugas sehat selama deployment adalah desiredCount dikalikan dengan minimumHealthyPercent/100, dibulatkan ke atas ke nilai bilangan bulat terdekat.

Jika layanan menggunakan tipe biru/hijau (CODE_DEPLOY) atau EXTERNAL penerapan dan menjalankan tugas yang menggunakan tipe EC2 peluncuran, nilai persen sehat minimum disetel ke nilai default. Nilai digunakan untuk menentukan batas bawah pada jumlah tugas dalam layanan yang tetap dalam RUNNING status saat instance kontainer berada dalam DRAINING status.

catatan

Anda tidak dapat menentukan maximumPercent nilai kustom untuk layanan yang menggunakan jenis biru/hijau (CODE_DEPLOY) atau EXTERNAL penerapan dan memiliki tugas yang menggunakan jenis peluncuran. EC2

Jika layanan menggunakan tipe biru/hijau (CODE_DEPLOY) atau EXTERNAL penerapan dan menjalankan tugas yang menggunakan tipe peluncuran Fargate, nilai persen sehat minimum tidak digunakan, meskipun layanan tersebut dikembalikan saat mendeskripsikan layanan Anda.

Pengendali deployment

deploymentController

Tipe: Objek

Wajib: Tidak

Pengendali deployment yang bisa digunakan untuk layanan. Jika pengendali deployment tidak ditentukan, maka digunakan pengendali ECS. Untuk informasi selengkapnya, lihat ECSLayanan Amazon.

type

Tipe: String

Nilai yang valid: ECS | CODE_DEPLOY | EXTERNAL

Wajib: ya

Tipe pengendali deployment yang bisa digunakan. Tersedia tiga tipe pengendali deployment:

ECS

Tipe deployment (ECS) pembaruan bergulir mencakup penggantian versi yang berjalan sekarang dari kontainer dengan versi terbaru. Jumlah kontainer yang ECS ditambahkan atau dihapus Amazon dari layanan selama pembaruan bergulir dikontrol dengan menyesuaikan jumlah minimum dan maksimum tugas sehat yang diizinkan selama penerapan layanan, seperti yang ditentukan dalam file. deploymentConfiguration

CODE_DEPLOY

Tipe penyebaran biru/hijau (CODE_DEPLOY) menggunakan model penerapan biru/hijau yang didukung oleh CodeDeploy, yang memungkinkan Anda memverifikasi penerapan layanan baru sebelum mengirim lalu lintas produksi ke sana.

EXTERNAL

Gunakan jenis penerapan eksternal saat Anda ingin menggunakan pengontrol penerapan pihak ketiga untuk kontrol penuh atas proses penyebaran untuk layanan Amazon. ECS

Penempatan tugas

placementConstraints

Tipe: Array objek

Wajib: Tidak

Aray objek batasan penempatan yang digunakan untuk tugas dalam layanan Anda. Anda dapat menentukan maksimum 10 kendala per tugas. Batas ini mencakup kendala dalam definisi tugas dan yang ditentukan pada waktu berjalan. Jika Anda menggunakan tipe peluncuran Fargate, batasan penempatan tugas tidak didukung.

type

Tipe: String

Wajib: Tidak

Tipe batasan. Gunakan distinctInstance untuk memastikan bahwa setiap tugas dalam grup tertentu berjalan di instans kontainer yang berbeda. Gunakan memberOf untuk membatasi seleksi ke grup kandidat yang valid. Nilai distinctInstance tidak didukung dalam ketentuan tugas.

expression

Tipe: String

Wajib: Tidak

Ekspresi bahasa kueri klaster untuk diterapkan pada batasan. Ingat bahwa Anda tidak dapat menentukan ekspresi jika tipe kendalanya adalah distinctInstance. Untuk informasi selengkapnya, lihat Buat ekspresi untuk menentukan instance kontainer untuk tugas Amazon ECS.

placementStrategy

Tipe: Array objek

Wajib: Tidak

Objek strategi penempatan untuk digunakan untuk tugas di layanan Anda. Anda dapat menentukan maksimal empat aturan strategi per layanan.

type

Tipe: String

Nilai yang valid: random | spread | binpack

Wajib: Tidak

Tipe strategi penempatan. Strategi penempatan random menempatkan tugas pada kandidat yang tersedia secara acak. Strategi penempatan spread menyebarkan penempatan di seluruh kandidat yang tersedia secara merata berdasarkan parameter field. binpackStrategi menempatkan tugas pada kandidat yang tersedia yang memiliki jumlah sumber daya paling sedikit yang tersedia yang ditentukan dengan field parameter. Misalnya, jika Anda binpack pada memori, tugas ditempatkan pada instance dengan jumlah memori yang tersisa paling sedikit tetapi masih cukup untuk menjalankan tugas.

field

Tipe: String

Wajib: Tidak

Bidang tempat menerapkan strategi penempatan. Untuk strategi spread penempatan, nilai yang valid adalah instanceId (atauhost, yang memiliki efek yang sama), atau platform atau atribut khusus apa pun yang diterapkan ke instance container, sepertiattribute:ecs.availability-zone. Untuk strategi penempatan binpack, nilai yang valid adalah cpu dan memory. Untuk strategi penempatan random, bidang ini tidak digunakan.

Tanda

tags

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

Jenis: Boolean

Nilai yang valid: true | false

Wajib: Tidak

Menentukan apakah akan menggunakan tag ECS terkelola Amazon untuk tugas-tugas dalam layanan. Jika tidak ada nilai yang ditentukan, nilai defaultnya adalah false. 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 TagResource API tindakan.

Konfigurasi jaringan

networkConfiguration

Tipe: Objek

Wajib: Tidak

Konfigurasi jaringan untuk layanan. Parameter ini diperlukan untuk definisi tugas yang menggunakan mode awsvpc jaringan untuk menerima Antarmuka Jaringan Elastis mereka sendiri, dan tidak didukung untuk mode jaringan lainnya. Jika menggunakan tipe peluncuran Fargate, mode awsvpc jaringan diperlukan. Untuk informasi selengkapnya tentang jaringan untuk jenis EC2 peluncuran Amazon, lihatOpsi jaringan ECS tugas Amazon untuk jenis EC2 peluncuran. Untuk informasi selengkapnya tentang jaringan untuk jenis peluncuran Fargate, lihat Jaringan Tugas Fargate.

awsvpcConfiguration

Tipe: Objek

Wajib: Tidak

Sebuah objek yang menunjukkan subnet dan grup keamanan untuk tugas atau layanan.

subnets

Tipe: Array string

Wajib: Ya

Subnet yang terkait dengan tugas atau layanan. Ada batas 16 subnet yang dapat ditentukan sesuai denganawsvpcConfiguration.

securityGroups

Tipe: Array string

Wajib: Tidak

Grup keamanan yang terkait dengan tugas atau layanan. Jika Anda tidak menentukan grup keamanan, grup keamanan default untuk grup akan VPC digunakan. Ada batas lima grup keamanan yang dapat ditentukan berdasarkanawsvpcConfiguration.

assignPublicIP

Tipe: String

Nilai yang valid: ENABLED | DISABLED

Wajib: Tidak

Apakah antarmuka jaringan elastis tugas menerima alamat IP publik. Jika nilai tidak ditentukan, maka digunakan nilai default DISABLED.

healthCheckGracePeriodSeconds

Tipe: Integer

Wajib: Tidak

Periode waktu, dalam hitungan detik, bahwa penjadwal ECS layanan Amazon harus mengabaikan pemeriksaan kesehatan target Elastic Load Balancing yang tidak sehat, pemeriksaan kesehatan kontainer, dan pemeriksaan kesehatan Route 53 setelah tugas memasuki RUNNING keadaan. 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 akan 0 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 ECS layanan mengabaikan status pemeriksaan kesehatan. Masa tenggang ini dapat mencegah penjadwal ECS layanan 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 selengkapnya, lihat Menentukan kesehatan ECS tugas Amazon menggunakan pemeriksaan kesehatan kontainer.

loadBalancers

Tipe: Array objek

Wajib: Tidak

Sebuah objek penyeimbang beban menunjukkan penyeimbang beban untuk digunakan dengan layanan Anda. Untuk layanan yang menggunakan Application Load Balancer atau Network Load Balancer, ada batasan lima grup target yang dapat Anda lampirkan ke layanan.

Setelah Anda membuat layanan, konfigurasi penyeimbang beban tidak dapat diubah dari. AWS Management Console Anda dapat menggunakan AWS Copilot, AWS CloudFormation, AWS CLI atau SDK untuk memodifikasi konfigurasi penyeimbang beban hanya untuk pengontrol penerapan ECS bergulir, bukan AWS CodeDeploy biru/hijau atau eksternal. Saat Anda menambahkan, memperbarui, atau menghapus konfigurasi penyeimbang beban, Amazon ECS memulai penerapan baru dengan konfigurasi Elastic Load Balancing yang diperbarui. Hal ini menyebabkan tugas mendaftar dan membatalkan pendaftaran dari penyeimbang beban. Kami menyarankan Anda memverifikasi ini di lingkungan pengujian sebelum memperbarui konfigurasi Elastic Load Balancing. Untuk informasi tentang cara mengubah konfigurasi, lihat UpdateServicedi APIReferensi Layanan Amazon Elastic Container.

Untuk Application Load Balancers dan Network Load Balancers, objek ini harus berisi kelompok target load balancerARN, nama kontainer (seperti yang muncul dalam definisi kontainer), dan port kontainer untuk mengakses dari penyeimbang beban. Ketika tugas dari layanan ini ditempatkan pada instance kontainer, instance kontainer dan kombinasi port terdaftar sebagai target dalam kelompok target yang ditentukan.

targetGroupArn

Tipe: String

Wajib: Tidak

Nama Sumber Daya Amazon (ARN) lengkap dari grup target Elastic Load Balancing yang terkait dengan layanan.

Grup target hanya ARN ditentukan saat menggunakan Application Load Balancer atau Network Load Balancer.

loadBalancerName

Tipe: String

Wajib: Tidak

Nama penyeimbang beban untuk dikaitkan dengan layanan.

Jika Anda menggunakan Application Load Balancer atau Network Load Balancer, hilangkan parameter nama load balancer.

containerName

Tipe: String

Wajib: Tidak

Nama kontainer (seperti yang muncul dalam ketentuan kontainer) untuk dikaitkan dengan penyeimbang beban.

containerPort

Tipe: Bilangan bulat

Wajib: Tidak

Port pada kontainer untuk dikaitkan dengan penyeimbang beban. Port ini harus sesuai dengan containerPort dalam ketentuan tugas yang digunakan oleh tugas dalam layanan. Untuk tugas yang menggunakan tipe EC2 peluncuran, instance container harus mengizinkan lalu lintas masuk pada hostPort pemetaan port.

role

Tipe: String

Wajib: Tidak

Nama pendek atau penuh IAM peran ARN yang memungkinkan Amazon melakukan panggilan ECS ke penyeimbang beban Anda atas nama Anda. Parameter ini hanya diizinkan jika Anda menggunakan penyeimbang beban dengan satu grup target untuk layanan Anda, dan definisi tugas Anda tidak menggunakan mode awsvpc jaringan. Jika Anda menentukan role parameter, Anda juga harus menentukan objek penyeimbang beban dengan loadBalancers parameter.

Jika peran yang Anda tentukan memiliki jalur selain/, maka Anda harus menentukan peran lengkap ARN (ini disarankan) atau mengawali nama peran dengan jalur tersebut. Misalnya, jika peran dengan nama bar memiliki jalur dari /foo/ maka Anda akan menentukan /foo/bar sebagai nama peran. Untuk informasi selengkapnya, lihat Nama dan Jalur Ramah di Panduan IAM Pengguna.

penting

Jika akun Anda telah membuat peran ECS terkait layanan Amazon, peran tersebut digunakan secara default untuk layanan Anda kecuali Anda menentukan peran di sini. Peran terkait layanan diperlukan jika definisi tugas Anda menggunakan mode jaringan awsvpc, dalam hal ini Anda tidak boleh menentukan peran di sini. Untuk informasi selengkapnya, lihat Menggunakan peran terkait layanan untuk Amazon ECS.

serviceConnectConfiguration

Tipe: Objek

Wajib: Tidak

Konfigurasi untuk layanan ini untuk menemukan dan terhubung ke layanan, dan ditemukan oleh, dan terhubung dari, layanan lain dalam namespace.

Untuk informasi selengkapnya, lihat Gunakan Service Connect untuk menghubungkan ECS layanan Amazon dengan nama pendek.

enabled

Jenis: Boolean

Wajib: Ya

Menentukan apakah akan menggunakan Service Connect dengan layanan ini.

namespace

Tipe: String

Wajib: Tidak

Nama pendek atau Amazon Resource Name (ARN) lengkap dari AWS Cloud Map namespace untuk digunakan dengan Service Connect. Namespace harus Wilayah AWS sama dengan ECS layanan Amazon dan cluster. Jenis namespace tidak memengaruhi Service Connect. Untuk informasi selengkapnya AWS Cloud Map, lihat Bekerja dengan Layanan di Panduan AWS Cloud Map Pengembang.

services

Tipe: Array objek

Wajib: Tidak

Array objek layanan Service Connect. Ini adalah nama dan alias (juga dikenal sebagai titik akhir) yang digunakan oleh ECS layanan Amazon lainnya untuk terhubung ke layanan ini.

Bidang ini tidak diperlukan untuk ECS layanan Amazon “klien” yang merupakan anggota namespace hanya untuk terhubung ke layanan lain di dalam namespace. Contohnya adalah aplikasi frontend yang menerima permintaan masuk dari penyeimbang beban yang dilampirkan ke layanan atau dengan cara lain.

Objek memilih port dari definisi tugas, menetapkan nama untuk AWS Cloud Map layanan, dan array alias (juga dikenal sebagai titik akhir) dan port untuk aplikasi klien untuk merujuk ke layanan ini.

portName

Tipe: String

Diperlukan: Ya

portNameHarus cocok dengan name salah satu portMappings dari semua wadah dalam definisi tugas ECS layanan Amazon ini.

discoveryName

Tipe: String

Wajib: Tidak

discoveryNameItu adalah nama AWS Cloud Map layanan baru yang ECS dibuat Amazon untuk ECS layanan Amazon ini. Ini harus unik di dalam AWS Cloud Map namespace.

Jika bidang ini tidak ditentukan, portName digunakan.

clientAliases

Tipe: Array objek

Wajib: Tidak

Daftar alias klien untuk layanan koneksi layanan ini. Anda menggunakan ini untuk menetapkan nama yang dapat digunakan oleh aplikasi klien. Jumlah maksimum alias klien yang dapat Anda miliki dalam daftar ini adalah 1.

Setiap alias (“titik akhir”) adalah DNS nama dan nomor port yang dapat digunakan oleh ECS layanan Amazon lainnya (“klien”) untuk terhubung ke layanan ini.

Setiap kombinasi nama dan port harus unik di dalam namespace.

Nama-nama ini dikonfigurasi dalam setiap tugas layanan klien, bukan di AWS Cloud Map. DNSpermintaan untuk menyelesaikan nama-nama ini tidak meninggalkan tugas, dan tidak dihitung terhadap kuota DNS permintaan per detik per elastic network interface.

port

Jenis: Integer

Wajib: Ya

Nomor port mendengarkan untuk proxy koneksi layanan. Port ini tersedia di dalam semua tugas dalam namespace yang sama.

Untuk menghindari perubahan aplikasi Anda di ECS layanan Amazon klien, atur ini ke port yang sama yang digunakan aplikasi klien secara default.

dnsName

Tipe: String

Wajib: Tidak

Itu dnsName adalah nama yang Anda gunakan dalam aplikasi tugas klien untuk terhubung ke layanan ini. Nama harus DNS label yang valid.

Nilai default adalah discoveryName.namespace jika bidang ini tidak ditentukan. Jika discoveryName tidak ditentukan, definisi portName dari tugas digunakan.

Untuk menghindari perubahan aplikasi Anda di ECS layanan Amazon klien, atur ini ke nama yang sama dengan yang digunakan aplikasi klien secara default. Misalnya, beberapa nama umum adalahdatabase,db, atau nama huruf kecil dari database, seperti mysql atau. redis

ingressPortOverride

Tipe: Integer

Wajib: Tidak

(Opsional) Nomor port untuk proxy Service Connect untuk didengarkan.

Gunakan nilai bidang ini untuk melewati proxy untuk lalu lintas pada nomor port yang ditentukan dalam nama portMapping dalam definisi tugas aplikasi ini, lalu gunakan di grup VPC keamanan Amazon Anda untuk mengizinkan lalu lintas ke proxy untuk ECS layanan Amazon ini.

Dalam awsvpc mode, nilai default adalah nomor port kontainer yang ditentukan dalam nama portMapping dalam definisi tugas aplikasi ini. Dalam bridge mode, nilai default adalah port ephemeral dinamis dari proxy Service Connect.

logConfiguration

Jenis: LogConfigurationObjek

Wajib: Tidak

Ini menentukan di mana log proxy Service Connect dipublikasikan. Gunakan log untuk debugging selama kejadian tak terduga. Konfigurasi ini menetapkan logConfiguration parameter dalam wadah proxy Service Connect di setiap tugas di ECS layanan Amazon ini. Kontainer proxy tidak ditentukan dalam definisi tugas.

Kami menyarankan Anda menggunakan konfigurasi log yang sama dengan wadah aplikasi definisi tugas untuk ECS layanan Amazon ini. Untuk FireLens, ini adalah konfigurasi log dari wadah aplikasi. Bukan wadah router FireLens log yang menggunakan gambar fluent-bit atau fluentd kontainer.

serviceRegistries

Tipe: Array objek

Wajib: Tidak

Detail konfigurasi pencari layanan untuk layanan Anda. Untuk informasi selengkapnya, lihat Gunakan penemuan layanan untuk menghubungkan ECS layanan Amazon dengan DNS nama.

registryArn

Tipe: String

Wajib: Tidak

Nama Sumber Daya Amazon (ARN) dari registri layanan. Registri layanan yang saat ini didukung adalah AWS Cloud Map. Untuk informasi selengkapnya, lihat Bekerja dengan Layanan di Panduan AWS Cloud Map Pengembang.

port

Tipe: Integer

Wajib: Tidak

Nilai port yang digunakan jika layanan penemuan layanan Anda menentukan SRV catatan. Bidang ini diperlukan jika mode awsvpc jaringan dan SRV catatan digunakan.

containerName

Tipe: String

Wajib: Tidak

Nilai nama kontainer yang akan digunakan untuk layanan penemuan layanan Anda. Nilai ini ditentukan dalam definisi tugas. Jika ketentuan tugas yang menentukan tugas layanan Anda menggunakan mode jaringan bridge atau host, Anda harus menentukan kombinasi containerName dan containerPort dari ketentuan tugas. Jika definisi tugas yang ditentukan oleh tugas layanan Anda menggunakan mode awsvpc jaringan dan SRV DNS catatan tipe digunakan, Anda harus menentukan containerPort kombinasi containerName dan atau port nilai, tetapi tidak keduanya.

containerPort

Tipe: Integer

Wajib: Tidak

Nilai port yang akan digunakan untuk layanan penemuan layanan Anda. Nilai ini ditentukan dalam definisi tugas. Jika ketentuan tugas yang ditentukan oleh tugas layanan Anda menggunakan mode jaringan bridge atau host, Anda harus menentukan kombinasi containerName dan containerPort dari ketentuan tugas. Jika definisi tugas yang ditentukan oleh tugas layanan Anda menggunakan mode awsvpc jaringan dan SRV DNS catatan tipe digunakan, Anda harus menentukan containerPort kombinasi containerName dan atau port nilai, tetapi tidak keduanya.

Token klien

clientToken

Tipe: String

Wajib: Tidak

Pengidentifikasi unik dan peka huruf besar/kecil yang Anda berikan untuk memastikan idempotensi permintaan. Panjangnya bisa mencapai 32 ASCII karakter.

Konfigurasi volume

volumeConfigurations

Tipe: Objek

Wajib: Tidak

Konfigurasi yang akan digunakan untuk membuat volume untuk tugas-tugas yang dikelola oleh layanan. Satu volume dibuat untuk setiap tugas dalam layanan. Hanya volume yang ditandai seperti configuredAtLaunch dalam definisi tugas yang dapat dikonfigurasi dengan menggunakan objek ini. Objek ini diperlukan untuk melampirkan volume EBS data Amazon ke tugas yang dikelola oleh layanan. Untuk informasi selengkapnya, lihat EBSVolume Amazon.

name

Tipe: String

Diperlukan: Ya

Nama volume yang dikonfigurasi saat membuat atau memperbarui layanan. Hingga 255 huruf (huruf besar dan kecil), angka, garis bawah (), dan tanda hubung (_) diperbolehkan. - Nilai ini harus cocok dengan nama volume yang ditentukan dalam definisi tugas.

managedEBSVolume

Tipe: Objek

Wajib: Tidak

Konfigurasi volume untuk EBS volume Amazon yang dilampirkan ke tugas yang dikelola oleh layanan saat layanan dibuat atau diperbarui.

encrypted

Tipe: Boolean

Wajib: Tidak

Nilai yang valid: true | false

Menentukan apakah EBS volume Amazon yang dilampirkan ke tugas yang dikelola oleh layanan akan dienkripsi. Jika Anda mengaktifkan EBS enkripsi Amazon secara default untuk akun Anda, pengaturan ini akan diganti, dan volume akan dienkripsi. Untuk informasi selengkapnya tentang EBS enkripsi secara default, lihat Enkripsi secara default di Panduan EC2 Pengguna Amazon.

kmsKeyId

Tipe: String

Wajib: Tidak

Pengenal kunci AWS Key Management Service (AWS KMS) yang akan digunakan untuk EBS enkripsi Amazon. Jika parameter ini tidak ditentukan, Anda AWS KMS key untuk Amazon EBS digunakan. Jika KmsKeyId ditentukan, status terenkripsi harus true.

Anda dapat menentukan KMS kunci dengan menggunakan salah satu dari berikut ini:

  • ID Kunci — Misalnya,1234abcd-12ab-34cd-56ef-1234567890ab.

  • Alias kunci — Misalnya,alias/ExampleAlias.

  • Kunci ARN — Misalnya,arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  • Alias ARN — Misalnya,arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

penting

AWS mengautentikasi KMS kunci secara asinkron. Oleh karena itu, jika Anda menentukan ID, alias, atau ARN yang tidak valid, tindakan dapat tampak berhasil, tetapi akhirnya gagal. Untuk informasi selengkapnya, lihat Memecahkan masalah lampiran EBS volume Amazon.

volumeType

Tipe: String

Wajib: Tidak

Nilai yang valid: gp2 gp3 | io1 | io2 | sc1 | st1 | standard

Jenis EBS volume. Untuk informasi selengkapnya tentang jenis volume, lihat Jenis EBS volume Amazon di Panduan EC2 Pengguna Amazon. Jenis volume default adalah gp3.

catatan

Jenis standard volume tidak didukung untuk EBS volume Amazon yang dikonfigurasi untuk lampiran ke tugas Fargate.

sizeInGiB

Tipe: Integer

Wajib: Tidak

Rentang yang valid: Bilangan bulat antara 1 dan 16.384

Ukuran EBS volume dalam gibibytes (GiB). Jika Anda tidak memberikan ID snapshot untuk mengonfigurasi volume lampiran, Anda harus memberikan nilai ukuran. Jika Anda mengonfigurasi volume untuk lampiran menggunakan snapshot, nilai defaultnya adalah ukuran snapshot. Anda kemudian dapat menentukan ukuran yang lebih besar dari atau sama dengan ukuran snapshot.

Untuk gp2 dan jenis gp3 volume, kisaran yang valid adalah 1-16.384.

Untuk io1 dan jenis io2 volume, kisaran yang valid adalah 4-16.384.

Untuk st1 dan jenis sc1 volume, kisaran yang valid adalah 125-16.384.

Untuk jenis standard volume, kisaran yang valid adalah 1-1.024.

snapshotId

Tipe: String

Wajib: Tidak

ID snapshot dari EBS volume yang ada yang digunakan untuk membuat volume baru yang dilampirkan ke ECS tugas.

iops

Tipe: Integer

Wajib: Tidak

Jumlah operasi I/O per detik (IOPS). Untuk gp3io1,, dan io2 volume, ini mewakili jumlah IOPS yang disediakan untuk volume. Untuk gp2 volume, nilai ini mewakili kinerja dasar volume dan tingkat di mana volume mengakumulasi kredit I/O untuk meledak. Parameter ini diperlukan untuk volume io1 dan io2. Parameter ini tidak didukung untukgp2,st1,sc1, atau standard volume.

Untuk gp3 volume, kisaran nilai yang valid adalah 3.000 hingga 16.000.

Untuk io1 volume, kisaran nilai yang valid adalah 100 hingga 64.000.

Untuk io2 volume, kisaran nilai yang valid adalah 100 hingga 64.000.

throughput

Tipe: Integer

Wajib: Tidak

Throughput untuk penyediaan volume yang melekat pada tugas-tugas yang dikelola oleh layanan.

penting

Parameter ini hanya didukung untuk gp3 volume.

roleArn

Tipe: String

Diperlukan: Ya

Amazon Resource ARN (ARN) dari peran infrastruktur AWS Identity and Access Management (IAM) yang menyediakan ECS izin Amazon untuk mengelola EBS sumber daya Amazon untuk tugas Anda. Untuk informasi selengkapnya, lihat IAMPeran ECS infrastruktur Amazon.

tagSpecifications

Tipe: Objek

Wajib: Tidak

Spesifikasi tag yang akan diterapkan pada volume Amazon EBS yang dikelola serivce.

resourceType

Tipe: String

Diperlukan: Ya

Nilai yang valid: volume

Jenis sumber daya untuk menandai pada penciptaan.

tags

Tipe: Array objek

Wajib: Tidak

Metadata yang Anda terapkan pada volume untuk membantu Anda mengkategorikan dan mengaturnya. Setiap tag terdiri dari kunci dan nilai opsional, yang keduanya Anda tentukan. AmazonECSCreateddan AmazonECSManaged merupakan tag cadangan yang ditambahkan oleh Amazon ECS atas nama Anda, sehingga Anda dapat menentukan maksimum 48 tag Anda sendiri. Ketika volume dihapus, tag dihapus juga. Untuk informasi selengkapnya, lihat Menandai sumber daya Amazon ECS.

key

Tipe: String

Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.

Wajib: Tidak

Salah satu bagian dari pasangan kunci-nilai yang membentuk tag. 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 dari pasangan kunci-nilai yang membentuk tag. Nilai bertindak sebagai deskriptor dalam kategori tanda (kunci).

propagateTags

Tipe: String

Nilai yang valid: TASK_DEFINITION | SERVICE | NONE

Wajib: Tidak

Menentukan apakah akan menyalin tag dari definisi tugas atau layanan ke volume. Jika NONE ditentukan atau tidak ada nilai yang ditentukan, tag tidak disalin.

fileSystemType

Tipe: String

Wajib: Tidak

Nilai yang valid: xfs | ext3 | ext4

Jenis sistem file pada volume. Jenis sistem file volume menentukan bagaimana data disimpan dan diambil dalam volume. Untuk volume yang dibuat dari snapshot, Anda harus menentukan jenis sistem file yang sama dengan volume yang digunakan saat snapshot dibuat. Jika ada ketidakcocokan tipe sistem file, tugas akan gagal dimulai. Default untuk volume yang dilampirkan ke tugas Linux adalahXFS.

Templat definisi layanan

Berikut ini menunjukkan JSON representasi definisi ECS layanan Amazon.

Jenis EC2 peluncuran Amazon

{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "role": "", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 0, "minimumHealthyPercent": 0, "alarms": { "alarmNames": [ "" ], "enable": true, "rollback": true } }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION", "enableExecuteCommand": true, "serviceConnectConfiguration": { "enabled": true, "namespace": "", "services": [ { "portName": "", "discoveryName": "", "clientAliases": [ { "port": 0, "dnsName": "" } ], "ingressPortOverride": 0 } ], "logConfiguration": { "logDriver": "journald", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] } }, "volumeConfigurations": [ { "name": "", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "", "volumeType": "", "sizeInGiB": 0, "snapshotId": "", "iops": 0, "throughput": 0, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "", "value": "" } ], "propagateTags": "NONE" } ], "roleArn": "", "filesystemType": "" } } ] }

Jenis peluncuran Fargate

{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "FARGATE", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "platformFamily": "", "role": "", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 0, "minimumHealthyPercent": 0, "alarms": { "alarmNames": [ "" ], "enable": true, "rollback": true } }, "placementStrategy": [ { "type": "binpack", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION", "enableExecuteCommand": true, "serviceConnectConfiguration": { "enabled": true, "namespace": "", "services": [ { "portName": "", "discoveryName": "", "clientAliases": [ { "port": 0, "dnsName": "" } ], "ingressPortOverride": 0 } ], "logConfiguration": { "logDriver": "journald", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] } }, "volumeConfigurations": [ { "name": "", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "", "volumeType": "", "sizeInGiB": 0, "snapshotId": "", "iops": 0, "throughput": 0, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "", "value": "" } ], "propagateTags": "NONE" } ], "roleArn": "", "filesystemType": "" } } ] }

Anda dapat membuat templat ketentuan layanan ini menggunakan perintah AWS CLI berikut.

aws ecs create-service --generate-cli-skeleton