Terapkan kontainer tanpa server ke cloud dari baris perintah Anda
fargate adalah antarmuka baris perintah untuk menerapkan kontainer ke AWS Fargate. Dengan menggunakan fargate , pengembang dapat dengan mudah mengoperasikan layanan fargate termasuk hal-hal seperti: penerapan aplikasi (gambar dan variabel lingkungan), memantau penerapan, melihat log kontainer, memulai ulang, dan melakukan penskalaan.
Anda dapat menginstal CLI stabil terbaru dengan skrip utilitas curl atau dengan mengunduh biner dari halaman rilis. Setelah terinstal, Anda akan mendapatkan perintah fargate
.
curl -s get-fargate.turnerlabs.io | sh
Jika Anda ingin menginstal prarilis terbaru, gunakan perintah ini:
curl -s get-fargate.turnerlabs.io | RELEASE=develop sh
Secara default, fargate menggunakan us-east-1 karena ini adalah satu wilayah tempat AWS Fargate tersedia. CLI menerima parameter --region untuk penggunaan di masa mendatang dan akan mengikuti pengaturan lingkungan AWS_REGION dan AWS_DEFAULT_REGION . Perhatikan bahwa menentukan wilayah di mana semua layanan yang diperlukan tidak tersedia akan menghasilkan kesalahan.
Lihat Tabel Wilayah untuk perincian layanan apa saja yang tersedia di wilayah mana.
fargate dibangun menggunakan AWS SDK for Go yang mencari kredensial di lokasi berikut:
Variabel Lingkungan
File Kredensial Bersama
Profil Instans EC2
Untuk informasi lebih lanjut lihat Menentukan Kredensial dalam dokumentasi AWS SDK for Go.
Ada beberapa cara untuk menentukan parameter. Setiap item didahulukan dari item di bawahnya:
Argumen CLI (misalnya, --cluster my-cluster
)
Variabel Lingkungan (misalnya, FARGATE_CLUSTER=my-cluster
)
fargate.yml
(misalnya, di bawah)
cluster : my-cluster
service : my-service
task : my-task
rule : my-event-rule
verbose : false
nocolor : true
Bendera | Pendek | Bawaan | Keterangan |
---|---|---|---|
--gugus | -C | Nama klaster ECS | |
--wilayah | kami-timur-1 | Wilayah AWS | |
--tidak berwarna | PALSU | Nonaktifkan keluaran warna | |
--bertele-tele | -v | PALSU | Keluaran yang panjang lebar |
Layanan mengelola instans kontainer Anda yang berumur panjang dan dijalankan di AWS Fargate. Jika kontainer Anda keluar karena alasan apa pun, penjadwal layanan akan memulai ulang kontainer Anda dan memastikan layanan Anda menjalankan jumlah tugas yang diinginkan. Layanan dapat digunakan bersama dengan penyeimbang beban untuk mendistribusikan lalu lintas di antara tugas-tugas di layanan Anda.
Bendera | Pendek | Bawaan | Keterangan |
---|---|---|---|
--melayani | -S | Nama layanan ECS |
fargate service list
Daftar layanan
fargate service deploy [--image <docker-image>]
Menyebarkan gambar baru ke layanan
Gambar kontainer Docker yang akan digunakan dalam layanan dapat ditentukan melalui flag --image.
fargate service deploy [--file docker-compose.yml]
Terapkan gambar, variabel lingkungan, dan rahasia yang ditentukan dalam file penulisan buruh pelabuhan ke layanan
Terapkan gambar buruh pelabuhan dan variabel lingkungan yang ditentukan dalam file penulisan buruh pelabuhan bersama-sama sebagai satu unit. Perhatikan bahwa variabel lingkungan dan rahasia diganti dengan apa yang ada di file penulisan.
Rahasia dapat didefinisikan sebagai pasangan nilai kunci di bawah bidang ekstensi file penulisan buruh pelabuhan x-fargate-secrets
. Untuk menggunakan kolom ekstensi, versi file penulisan harus minimal 2.4
untuk seri 2.x atau minimal 3.7
untuk seri 3.x.
Hal ini memungkinkan Anda menjalankan docker-compose up
secara lokal untuk menjalankan aplikasi Anda dengan cara yang sama seperti saat dijalankan di AWS. Perhatikan bahwa meskipun konfigurasi yaml penulisan buruh pelabuhan mendukung banyak opsi, hanya variabel gambar dan lingkungan yang diterapkan ke fargate. Jika file penulisan buruh pelabuhan mendefinisikan lebih dari satu kontainer, Anda dapat menggunakan label aws.ecs.fargate.deploy: 1
untuk menunjukkan kontainer mana yang ingin Anda terapkan. Misalnya:
version : " 3.7 "
services :
web :
build : .
image : 1234567890.dkr.ecr.us-east-1.amazonaws.com/my-service:0.1.0
ports :
- 80:5000
environment :
FOO : bar
BAZ : bam
env_file :
- hidden.env
x-fargate-secrets :
QUX : arn:key:ssm:us-east-1:000000000000:parameter/path/to/my_parameter
labels :
aws.ecs.fargate.deploy : 1
redis :
image : redis
fargate service info
Periksa layanan
Tampilkan informasi tambahan untuk suatu layanan termasuk konfigurasi penyeimbang beban, penerapan aktif, variabel lingkungan, dan rahasia.
Penerapan menunjukkan versi aktif layanan Anda yang sedang berjalan. Beberapa penerapan ditampilkan jika layanan sedang bertransisi karena penerapan atau pembaruan pada konfigurasi seperti CPU, memori, atau variabel lingkungan.
fargate service logs [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
[--time] [--no-prefix]
Tampilkan log dari tugas dalam suatu layanan
Kembalikan segmen log layanan atau log ekor tertentu secara real-time menggunakan opsi --follow. Log diawali dengan nama pengaliran lognya dalam format "fargate/<nama-layanan>/<task-id>."
Follow akan terus berjalan dan mengembalikan log hingga diinterupsi oleh Control-C. Jika --follow diteruskan --end tidak dapat ditentukan.
Log dapat dikembalikan untuk tugas tertentu dalam layanan dengan meneruskan ID tugas melalui tanda --task. Lewati --task dengan ID tugas beberapa kali untuk mengambil log dari beberapa tugas tertentu.
Jendela log tertentu dapat diminta dengan meneruskan opsi --start dan --end dengan ekspresi waktu. Ekspresi waktu dapat berupa durasi atau stempel waktu:
Anda dapat memfilter log untuk istilah tertentu dengan meneruskan ekspresi filter melalui tanda --filter. Berikan satu istilah untuk mencari istilah tersebut, berikan beberapa istilah untuk mencari pesan log yang mencakup semua istilah. Lihat dokumentasi CloudWatch Logs untuk detail selengkapnya.
--time menyertakan stempel waktu log dalam output
--no-prefix mengecualikan awalan aliran log dari output
fargate service ps
Daftar tugas yang berjalan untuk suatu layanan
fargate service scale <scale-expression>
Skalakan jumlah tugas dalam suatu layanan
Mengubah jumlah tugas yang diinginkan untuk dijalankan dalam suatu layanan dengan ekspresi skala yang diberikan. Ekspresi skala dapat berupa angka absolut atau delta yang ditentukan dengan tanda seperti +5 atau -2.
fargate service env set [--env <key=value>] [--file <pathname>]
[--secret <key=valueFrom>] [--secret-file <pathname>]
Tetapkan variabel dan rahasia lingkungan
Setidaknya satu variabel lingkungan atau rahasia harus ditentukan melalui tanda --env, --file, --secret, atau --secret-file. Anda dapat menentukan sejumlah variabel pada baris perintah dengan mengulangi --env sebelum masing-masing variabel, atau menempatkan beberapa variabel dalam file teks, satu variabel per baris, dan menentukan nama file dengan --file dan/atau --secret-file .
Setiap string atau baris parameter --env dan --secret dalam file harus berbentuk "key=value", tanpa tanda kutip dan tanpa spasi di sekitar "=" kecuali Anda ingin spasi di depan literal dalam nilai. Selain itu, sisi "kunci" harus berupa pengidentifikasi shell legal, yang berarti harus dimulai dengan huruf ASCII AZ atau garis bawah dan hanya terdiri dari huruf, angka, dan garis bawah.
"Nilai" dalam "key=value" untuk setiap tanda --secret harus mereferensikan ARN ke rahasia AWS Secrets Manager atau parameter AWS Systems Manager Parameter Store.
fargate service env unset --key <key-name>
Hapus variabel dan rahasia lingkungan
Membatalkan variabel lingkungan atau rahasia yang ditentukan melalui tanda --key. Tentukan --key dengan nama kunci beberapa kali untuk menghapus beberapa variabel.
fargate service env list
Tampilkan variabel lingkungan
Bendera | Pendek | Bawaan | Keterangan |
---|---|---|---|
--cpu | Jumlah unit CPU yang akan dialokasikan untuk setiap tugas | ||
--ingatan | -M | Jumlah MiB yang akan dialokasikan untuk setiap tugas |
fargate service update [--cpu <cpu-units>] [--memory <MiB>]
Perbarui konfigurasi layanan
Pengaturan CPU dan memori ditentukan masing-masing sebagai unit CPU dan mebibyte menggunakan tanda --cpu dan --memory. Setiap 1024 unit CPU setara dengan satu vCPU. AWS Fargate hanya mendukung kombinasi konfigurasi CPU dan memori tertentu:
CPU (Unit CPU) | Memori (MiB) |
---|---|
256 | 512, 1024, atau 2048 |
512 | 1024 hingga 4096 dengan kelipatan 1GiB |
1024 | 2048 hingga 8192 dengan kelipatan 1GiB |
2048 | 4096 hingga 16384 dengan kelipatan 1GiB |
4096 | 8192 hingga 30720 dengan kelipatan 1GiB |
Setidaknya salah satu dari --cpu atau --memory harus ditentukan.
fargate service restart
Mulai ulang layanan
Membuat serangkaian tugas baru untuk layanan dan menghentikan tugas sebelumnya. Ini berguna jika layanan Anda perlu memuat ulang data yang di-cache dari sumber eksternal, misalnya.
Bendera | Pendek | Bawaan | Keterangan |
---|---|---|---|
--tugas | -T | Keluarga Definisi Tugas |
Tugas adalah eksekusi satu kali pada container Anda. Instans tugas Anda dijalankan hingga Anda menghentikannya secara manual melalui API AWS, AWS Management Console, atau hingga instans tersebut terganggu karena alasan apa pun.
fargate task register [--image <docker-image>]
[-e KEY=value -e KEY2=value] [--env-file dev.env]
[--secret KEY3=valueFrom] [--secret-file secrets.env]
Mendaftarkan ketentuan tugas baru untuk gambar buruh pelabuhan, variabel lingkungan, atau rahasia tertentu berdasarkan revisi terbaru dari kelompok tugas dan mengembalikan nomor revisi baru.
Gambar kontainer Docker yang akan digunakan dalam Definisi Tugas baru dapat ditentukan melalui flag --image.
Variabel lingkungan dapat ditentukan menggunakan satu atau banyak flag --env
atau flag --env-file
.
Rahasia dapat ditentukan menggunakan satu atau banyak tanda --secret
atau tanda --secret-file
.
fargate task register [--file docker-compose.yml]
Mendaftarkan Definisi Tugas baru menggunakan gambar, variabel lingkungan, dan rahasia yang ditentukan dalam file penulisan buruh pelabuhan. Perhatikan bahwa variabel lingkungan diganti dengan apa yang ada di file penulisan.
Rahasia dapat didefinisikan sebagai pasangan nilai kunci di bawah bidang ekstensi file penulisan buruh pelabuhan x-fargate-secrets
. Untuk menggunakan kolom ekstensi, versi file penulisan harus minimal 2.4
untuk seri 2.x atau minimal 3.7
untuk seri 3.x.
Jika file penulisan buruh pelabuhan mendefinisikan lebih dari satu kontainer, Anda dapat menggunakan label aws.ecs.fargate.deploy: 1
untuk menunjukkan kontainer mana yang ingin Anda terapkan.
fargate task describe
Perintah deskripsikan menjelaskan Definisi Tugas dalam format Docker Compose. Gambar Docker, variabel lingkungan, rahasia, dan port target adalah elemen yang dipetakan.
Perintah ini dapat berguna untuk melihat perubahan yang dilakukan oleh perintah task register
, service deploy
, atau service env set
. Ini juga dapat berguna untuk menjalankan ketentuan tugas secara lokal untuk tujuan debugging atau pemecahan masalah.
fargate task describe -t my-app > docker-compose.yml
docker-compose up
Anda dapat menentukan kelompok ketentuan tugas dengan menggunakan file fargate.yml
, envvar FARGATE_TASK
, atau menggunakan tanda -t
, termasuk nomor revisi opsional.
fargate task describe -t my-app
fargate task describe -t my-app:42
Contoh keluaran:
version : " 3.7 "
services :
app :
image : 1234567890.dkr.ecr.us-east-1.amazonaws.com/my-app:1.0
ports :
- published : 8080
target : 8080
environment :
AWS_REGION : us-east-1
ENVIRONMENT : dev
FOO : bar
x-fargate-secrets :
KEY : arn:key:ssm:us-east-1:000000000000:parameter/path/to/my_parameter
labels :
aws.ecs.fargate.deploy : " 1 "
fargate task logs [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
[--container-name] [--time] [--no-prefix]
Tampilkan log dari tugas
Mengasumsikan grup log cloudwatch dengan konvensi berikut: fargate/task/<task>
di mana task
ditentukan melalui --task
, atau fargate.yml, atau opsi variabel lingkungan
Kembalikan segmen log tugas atau log ekor tertentu secara real-time menggunakan opsi --follow. Log diawali dengan nama pengaliran lognya dalam format fargate/<container-name>/<task-id>.
--container-name
memungkinkan Anda menentukan kontainer dalam ketentuan tugas untuk mendapatkan log (default pada app
)
Follow akan terus berjalan dan mengembalikan log hingga diinterupsi oleh Control-C. Jika --follow
diteruskan --end
tidak dapat ditentukan.
Log dapat dikembalikan untuk tugas tertentu dengan meneruskan ID tugas melalui tanda --task
. Lewati --task
dengan ID tugas beberapa kali untuk mengambil log dari beberapa tugas tertentu.
Jendela log tertentu dapat diminta dengan meneruskan opsi --start
dan --end
dengan ekspresi waktu. Ekspresi waktu dapat berupa durasi atau stempel waktu:
Anda dapat memfilter log untuk istilah tertentu dengan meneruskan ekspresi filter melalui tanda --filter
. Berikan satu istilah untuk mencari istilah tersebut, berikan beberapa istilah untuk mencari pesan log yang mencakup semua istilah.
--time
menyertakan stempel waktu log dalam output
--no-prefix
mengecualikan awalan aliran log dari output
Bendera | Pendek | Bawaan | Keterangan |
---|---|---|---|
--aturan | -R | Aturan Acara CloudWatch |
Perintah events
menyediakan subperintah untuk bekerja dengan CloudWatch Events (tugas terjadwal, dll.)
fargate events target --revision <revision>
"Menyebarkan" (menyebabkan pemanggilan aturan peristiwa berikutnya menjalankan versi baru) revisi ketentuan tugas ke Aturan Peristiwa CloudWatch dengan memperbarui EcsParameters.TaskDefinitionArn
target aturan.
Sistem CI/CD pada umumnya mungkin melakukan sesuatu seperti:
REVISION=$(fargate task register -i 123456789.dkr.ecr.us-east-1.amazonaws.com/my-app:${VERSION}-${CIRCLE_BUILD_NUM} -e FOO=bar)
fargate events target -r ${REVISION}