Meneruskan variabel ke kontainer - Amazon ECS

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

Meneruskan variabel ke kontainer

penting

Sebaiknya simpan data sensitif Anda dalam parameterAWS Secrets Manager rahasia atauAWS Systems Manager Parameter Store. Untuk informasi selengkapnya, lihat Melewati data sensitif ke wadah.

Variabel lingkungan yang ditentukan dalam definisi tugas dapat dibaca oleh semua pengguna dan peran yang diizinkanDescribeTaskDefinition tindakan untuk definisi tugas.

File variabel lingkungan adalah objek di Amazon S3 dan semua pertimbangan keamanan Amazon S3 berlaku. Lihat bagian di bawah iniIzin IAM yang diperlukan.

Anda dapat meneruskan variabel lingkungan ke kontainer Anda dengan cara berikut:

  • Secara individual menggunakan parameter ketentuan kontainer environment. Ini memetakan ke --env opsi untuk docker run.

  • Secara massal, menggunakan parameterenvironmentFiles ketentuan kontainer untuk membuat daftar satu atau lebih file yang berisi variabel lingkungan. File harus di-host di Amazon S3. Ini memetakan ke --env-file opsi untuk docker run.

Dengan menentukan variabel lingkungan dalam file, Anda dapat menyuntikkan variabel lingkungan secara massal. Dalam ketentuan kontainer Anda, tentukanenvironmentFiles objek dengan daftar bucket Amazon S3 yang berisi file variabel lingkungan Anda. File harus menggunakan ekstensi.env file dan ada batas sepuluh file ke ketentuan tugas.

Kami tidak menerapkan batas ukuran pada variabel lingkungan, tetapi file variabel lingkungan yang besar mungkin mengisi ruang disk. Setiap tugas yang menggunakan file variabel lingkungan menyebabkan salinan file yang akan diunduh ke disk. Kami menghapus file sebagai bagian dari pembersihan tugas.

Berikut ini adalah potongan ketentuan tugas yang menunjukkan cara menentukan variabel lingkungan individual.

{ "family": "", "containerDefinitions": [ { "name": "", "image": "", ... "environment": [ { "name": "variable", "value": "value" } ], ... } ], ... }

Berikut ini adalah potongan ketentuan tugas yang menunjukkan cara menentukan file variabel lingkungan.

{ "family": "", "containerDefinitions": [ { "name": "", "image": "", ... "environmentFiles": [ { "value": "arn:aws:s3:::s3_bucket_name/envfile_object_name.env", "type": "s3" } ], ... } ], ... }

Pertimbangan untuk menentukan file variabel lingkungan

Pertimbangkan hal berikut saat menentukan sebuah file variabel lingkungan dalam ketentuan kontainer.

  • Untuk tugas Amazon ECS diAWS Fargate, tugas Anda harus menggunakan versi platform1.4.0 atau yang lebih baru (Linux) untuk menggunakan fitur ini. Untuk informasi selengkapnya, lihat AWSVersi platform Fargate.

    Verifikasi bahwa variabel didukung untuk platform sistem operasi. Untuk informasi selengkapnya, lihat Definisi kontainer dan Parameter ketentuan tugas lainnya.

  • File harus menggunakan ekstensi file .env dan pengodean UTF-8.

  • Setiap baris dalam file lingkungan harus berisi variabel lingkungan dalamVARIABLE=VALUE format. Spasi atau tanda kutip disertakan sebagai bagian dari nilai. Baris diawali dengan # diperlakukan sebagai komentar dan diabaikan. Untuk informasi selengkapnya tentang sintaks file variabel, lihat Nyatakan variabel lingkungan default dalam file.

    Berikut ini adalah sintaks yang sesuai.

    #This is a comment and will be ignored VARIABLE=VALUE ENVIRONMENT=PRODUCTION
  • Jika ada variabel lingkungan yang ditentukan menggunakan parameter environment dalam ketentuan kontainer, maka akan lebih diutamakan daripada variabel yang terkandung dalam file lingkungan.

  • Jika beberapa file lingkungan ditentukan dan mereka berisi variabel yang sama, mereka diproses dalam urutan entri. Ini berarti bahwa nilai pertama dari variabel digunakan dan nilai-nilai berikutnya dari variabel duplikat diabaikan. Kami merekomendasikan agar Anda menggunakan nama variabel yang unik.

  • Jika file lingkungan ditentukan sebagai override kontainer, digunakan. Selain itu, file lingkungan lain yang ditentukan dalam definisi kontainer diabaikan.

Izin IAM yang diperlukan

Peran eksekusi tugas Amazon ECS diperlukan untuk menggunakan fitur ini. Hal ini mengizinkan agen kontainer untuk menarik variabel lingkungan file dari Amazon S3. Untuk informasi selengkapnya, lihat Peran IAM eksekusi tugas ECS.

Untuk memberikan akses ke objek Amazon S3 yang Anda buat, tambahkan izin berikut secara manual sebagai kebijakan sebaris ke peran eksekusi tugas. GunakanResource parameter tersebut untuk lingkup izin untuk bucket Amazon S3 yang berisi file variabel lingkungan. Untuk informasi selengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.

  • s3:GetObject

  • s3:GetBucketLocation

Pada contoh berikut, izin ditambahkan ke kebijakan inline.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::examplebucket/folder_name/env_file_name" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::examplebucket" ] } ] }