View a markdown version of this page

Memigrasikan ARN layanan pendek Amazon ECS ke ARN panjang - Amazon Elastic Container Service

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

Memigrasikan ARN layanan pendek Amazon ECS ke ARN panjang

Amazon ECS menetapkan Nama Sumber Daya Amazon (ARN) unik untuk setiap layanan. Layanan yang dibuat sebelum 2021 memiliki format ARN pendek:

arn:aws:ecs:region:aws_account_id:service/service-name

Amazon ECS mengubah format ARN untuk menyertakan nama cluster. Ini adalah format ARN yang panjang:

arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

Layanan Anda harus memiliki format ARN panjang untuk memberikan tag ke layanan Anda.

Anda dapat memigrasikan layanan dengan format ARN pendek ke format ARN panjang tanpa harus membuat ulang layanan. Anda dapat menggunakan API, CLI, atau konsol. Anda tidak dapat membatalkan operasi migrasi.

Proses migrasi berjalan mulus dan memastikan nol downtime untuk layanan Anda. Selama migrasi:

  • Ketersediaan layanan: Layanan Anda terus berjalan normal tanpa gangguan terhadap lalu lintas atau fungsionalitas.

  • Menjalankan tugas: Tugas yang ada terus berjalan tanpa gangguan. Tugas baru yang diluncurkan setelah migrasi akan menggunakan format ARN panjang jika pengaturan taskLongArnFormat akun diaktifkan.

  • Instans kontainer: Instans kontainer tidak terpengaruh oleh migrasi ARN layanan dan terus beroperasi secara normal.

  • Konfigurasi layanan: Semua pengaturan layanan, termasuk definisi tugas, jaringan, dan konfigurasi penyeimbang beban, tetap tidak berubah.

Jika Anda ingin menggunakan CloudFormation untuk menandai layanan dengan format ARN pendek, Anda harus memigrasikan layanan menggunakan API, CLI, atau konsol. Setelah migrasi selesai, Anda dapat menggunakan CloudFormation untuk menandai layanan.

Jika Anda ingin menggunakan Terraform untuk menandai layanan dengan format ARN pendek, Anda harus memigrasikan layanan menggunakan API, CLI, atau konsol. Setelah migrasi selesai, Anda dapat menggunakan Terraform untuk menandai layanan.

Setelah migrasi selesai, layanan memiliki perubahan berikut:

  • Format ARN yang panjang

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

  • Saat Anda bermigrasi menggunakan konsol, Amazon ECS menambahkan tag ke layanan dengan kunci disetel ke “ecs:serviceArnMigratedAt” dan nilai disetel ke stempel waktu migrasi (format UTC).

    Tag ini diperhitungkan dalam kuota tag Anda.

  • Ketika PhysicalResourceId dalam CloudFormation tumpukan mewakili ARN layanan, nilainya tidak berubah dan akan terus menjadi ARN layanan pendek.

Prasyarat

Lakukan operasi berikut sebelum Anda memigrasikan layanan ARN.

  1. Untuk melihat apakah Anda memiliki ARN layanan pendek, lihat detail layanan di konsol Amazon ECS (Anda melihat peringatan ketika layanan memiliki format ARN pendek), atau parameter pengem serviceARN balian daridescribe-services. Ketika ARN tidak menyertakan nama cluster, Anda memiliki ARN pendek. Berikut ini adalah format ARN pendek:

    arn:aws:ecs:region:aws_account_id:service/service-name

  2. Perhatikan yang dibuat pada tanggal.

  3. Jika Anda memiliki kebijakan IAM yang menggunakan format ARN pendek, perbarui ke format ARN panjang.

    Ganti masing-masing user input placeholder dengan informasi Anda sendiri.

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

    Untuk informasi selengkapnya, lihat Mengedit kebijakan IAM di Panduan AWS Identity and Access Management Pengguna.

  4. Jika Anda memiliki alat yang menggunakan format ARN pendek, perbarui ke format ARN panjang.

    Ganti masing-masing user input placeholder dengan informasi Anda sendiri.

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

  5. Aktifkan format ARN panjang layanan. Jalan put-account-setting kan dengan serviceLongArnFormat opsi yang disetel keenabled. Untuk informasi selengkapnya, lihat, setel akun di Referensi API Layanan Kontainer Amazon Elastic.

    Jalankan perintah sebagai pengguna root ketika layanan Anda memiliki createdAt tanggal yang tidak diketahui.

    aws ecs put-account-setting --name serviceLongArnFormat --value enabled

    Contoh Output

    { "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:role/your-role", "type": user } }
  6. Aktifkan format ARN panjang tugas. Pengaturan akun ini mengontrol format ARN untuk tugas baru yang diluncurkan setelah migrasi layanan selesai. Jalan put-account-setting kan dengan taskLongArnFormat opsi yang disetel keenabled. Untuk informasi selengkapnya, lihat, setel akun di Referensi API Layanan Kontainer Amazon Elastic.

    Jalankan perintah sebagai pengguna root ketika layanan Anda memiliki createdAt tanggal yang tidak diketahui.

    aws ecs put-account-setting --name taskLongArnFormat --value enabled

    Contoh Output

    { "setting": { "name": "taskLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:role/your-role", "type": user } }
    catatan

    Peng taskLongArnFormat aturan tidak secara langsung memigrasikan tugas yang ada. Ini hanya mempengaruhi format ARN tugas baru yang dibuat setelah pengaturan diaktifkan. Tugas berjalan yang ada mempertahankan format ARN saat ini sampai diganti melalui operasi layanan normal (seperti penerapan atau aktivitas penskalaan).

Prosedur

Gunakan yang berikut ini untuk memigrasikan layanan ARN Anda.

  1. Buka konsol di https://console.aws.amazon.com/ecs/v2.

  2. Pada halaman Cluster, pilih cluster.

  3. Di bagian Layanan, pilih layanan yang memiliki peringatan di kolom ARN.

    Halaman detail layanan muncul.

  4. Pilih Migrasi ke ARN panjang.

    Kotak dialog Migrasi layanan muncul.

  5. Pilih Migrasikan.

Setelah Anda menyelesaikan prasyarat, Anda dapat menandai layanan Anda. Jalankan perintah berikut:

Amazon ECS mempertimbangkan meneruskan format ARN panjang dalam permintaan tag-resource API untuk layanan dengan ARN pendek sebagai sinyal untuk memigrasikan layanan untuk menggunakan format ARN panjang.

aws ecs tag-resource \ --resource-arn arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name --tags key=key1,value=value1

Contoh berikut tag MyService dengan tag yang memiliki kunci yang disetel ke "TestService" dan nilai disetel ke "WebServers:

aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-east-1:123456789012:service/MyCluster/MyService --tags key=TestService1,value=WebServers

Setelah Anda menyelesaikan prasyarat, Anda dapat menandai layanan Anda. Buat aws_ecs_service sumber daya dan atur tags referensi. Untuk informasi selengkapnya, lihat Resource: aws_ecs_service dalam dokumentasi Terraform.

resource "aws_ecs_service" "MyService" { name = "example" cluster = aws_ecs_cluster.MyService.id tags = { "Name" = "MyService" "Environment" = "Production" "Department" = "QualityAssurance" } }

Langkah selanjutnya

Anda dapat menambahkan tag ke layanan. Untuk informasi selengkapnya, lihat Menambahkan tag ke sumber daya Amazon ECS.

Jika Anda ingin Amazon ECS menyebarkan tag dari definisi tugas atau layanan ke tugas, jalankan update-service dengan propagateTags parameter. Untuk informasi selengkapnya, lihat update-service di Referensi AWS Command Line Interface .

Pemecahan masalah

Beberapa pengguna mungkin mengalami kesalahan berikut ketika mereka bermigrasi dari format ARN pendek ke format ARN panjang.

There was an error while migrating the ARN of service service-name. The specified account does not have serviceLongArnFormat or taskLongArnFormat account settings enabled. Add account settings in order to enable tagging.

Jika Anda telah mengaktifkan pengaturan serviceLongArnFormat akun tetapi masih mengalami kesalahan ini, mungkin karena pengaturan akun untuk format ARN yang panjang belum diaktifkan untuk prinsipal IAM tertentu yang awalnya membuat layanan.

  1. Identifikasi kepala sekolah yang menciptakan layanan.

    1. Di konsol, informasi tersedia di bidang Di buat oleh di tab Konfigurasi dan jaringan pada halaman detail layanan di konsol Amazon ECS.

    2. Untuk AWS CLI, jalankan perintah berikut:

      Ganti user-input dengan nilai-nilai Anda.

      aws ecs describe-services --cluster cluster-name --services service-name --query 'services[0].{createdBy: createdBy}'
  2. Aktifkan pengaturan akun yang diperlukan untuk prinsipal tertentu. Anda dapat melakukannya dengan salah satu cara berikut:

    1. Asumsikan pengguna atau peran IAM untuk prinsipal itu. Lalu lariput-account-setting.

    2. Gunakan pengguna root untuk menjalankan perintah sambil menentukan prinsip pembuatan denganprincipal-arn.

      Contoh

      Ganti principal-arn dengan nilai dari Langkah 1.

      aws ecs put-account-setting --name serviceLongArnFormat --value enabled --principal-arn arn:aws:iam::123456789012:role/jdoe

Kedua metode mengaktifkan pengaturan serviceLongArnFormat akun yang diperlukan pada prinsipal yang membuat layanan, yang memungkinkan migrasi ARN untuk dilanjutkan.