

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
<a name="service-arn-migration"></a>

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 panjang untuk memberikan tag ke 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.

Proses migrasi berjalan lancar dan memastikan nol downtime untuk layanan Anda. Selama migrasi:
+ **Ketersediaan layanan**: Layanan Anda terus berjalan normal tanpa gangguan pada 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.
+ **Instance kontainer**: Instance 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: serviceArnMigrated At” dan nilai yang 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 singkat. 

## Prasyarat
<a name="migrate-service-arn-prerequisite"></a>

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`

1. Perhatikan yang dibuat pada tanggal.

1.  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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) di *Panduan AWS Identity and Access Management Pengguna*.

1.  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`

1. Aktifkan format ARN panjang layanan. Jalankan `put-account-setting` dengan `serviceLongArnFormat` opsi yang disetel ke`enabled`. Untuk informasi selengkapnya, lihat, [put-account-setting](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting.html)di *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
       }
   }
   ```

1. Aktifkan format ARN tugas yang panjang. Pengaturan akun ini mengontrol format ARN untuk tugas baru yang diluncurkan setelah migrasi layanan selesai. Jalankan `put-account-setting` dengan `taskLongArnFormat` opsi yang disetel ke`enabled`. Untuk informasi selengkapnya, lihat, [put-account-setting](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting.html)di *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
       }
   }
   ```
**catatan**  
`taskLongArnFormat`Pengaturan tidak secara langsung memigrasikan tugas yang ada. Ini hanya mempengaruhi format ARN dari tugas baru yang dibuat setelah pengaturan diaktifkan. Tugas berjalan yang ada mempertahankan format ARN mereka saat ini hingga diganti melalui operasi layanan normal (seperti penerapan atau aktivitas penskalaan).

## Prosedur
<a name="migrate-service-arn-procedure"></a>

Gunakan yang berikut ini untuk memigrasikan ARN layanan Anda.

### Konsol
<a name="migrate-service-arn-procedure-console"></a>

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Pada halaman **Clusters**, pilih cluster.

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

   Halaman detail layanan muncul.

1. Pilih **Migrasi ke ARN panjang**.

   Kotak dialog Migrasi layanan muncul.

1. Pilih **Migrasikan**.

### CLI
<a name="migrate-service-arn-procedure-cli"></a>

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

### Terraform
<a name="migrate-service-arn-procedure-terraform"></a>

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\$1ecs\$1service](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/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
<a name="tag-next-steps"></a>

Anda dapat menambahkan tag ke layanan. Untuk informasi selengkapnya, lihat [Menambahkan tag ke sumber daya Amazon ECS](tag-resources-console.md).

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](https://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html) di Referensi. AWS Command Line Interface *

## Pemecahan masalah
<a name="troubleshooting-arn-migration"></a>

 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. 

   1. 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}'
      ```

1. 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 lari`put-account-setting`. 

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