Migrasikan ARN layanan singkat Amazon ECS ke ARN yang 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.

Migrasikan ARN layanan singkat Amazon ECS ke ARN yang panjang

Amazon ECS memberikan 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 yang panjang untuk menandai layanan Anda.

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

Jika Anda ingin menggunakan AWS CloudFormation untuk menandai layanan dengan format ARN pendek, Anda harus memigrasikan layanan menggunakan API, CLI, atau konsol. Setelah migrasi selesai, Anda dapat menggunakan AWS 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: serviceArnMigrated At” dan nilai yang disetel ke stempel waktu migrasi (format UTC).

    Tag ini diperhitungkan dalam kuota tag Anda.

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

Prasyarat

Lakukan operasi berikut sebelum Anda memigrasikan layanan ARN.

  1. Untuk melihat apakah Anda memiliki ARN layanan singkat, lihat detail layanan di konsol Amazon ECS (Anda melihat peringatan ketika layanan memiliki format ARN pendek), atau parameter pengembalian dari. serviceARN describe-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 yang 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 yang 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. Jalankan put-account-setting dengan serviceLongArnFormat opsi yang disetel keenabled. Untuk informasi selengkapnya, lihat, put-account-settingdi Referensi API Amazon Elastic Container Service.

    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 tugas yang panjang. Ini memungkinkan tugas yang berjalan sebagai bagian dari layanan memiliki format ARN yang panjang. Jalankan put-account-setting dengan taskLongArnFormat opsi yang disetel keenabled. Untuk informasi selengkapnya, lihat, put-account-settingdi Referensi API Amazon Elastic Container Service.

    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 } }

Prosedur

Gunakan yang berikut ini untuk memigrasikan ARN layanan Anda.

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

  2. Pada halaman Clusters, 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 untuk meneruskan format ARN panjang dalam tag-resource permintaan API untuk layanan dengan ARN pendek sebagai sinyal untuk memigrasikan layanan untuk menggunakan format ARN yang 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 tag berikut MyService dengan tag yang memiliki kunci disetel ke "TestService" dan nilai yang 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 di 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 parameter. propagateTags Untuk informasi selengkapnya, lihat update-service di Referensi. AWS Command Line Interface

Pemecahan Masalah

Beberapa pengguna mungkin mengalami kesalahan berikut saat mereka bermigrasi dari format ARN pendek ke format ARN yang 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 Dibuat 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 IAM atau peran untuk prinsipal itu. Lalu lariput-account-setting.

    2. Gunakan pengguna root untuk menjalankan perintah sambil menentukan prinsip pembuatan dengan. principal-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 melanjutkan.