Esegui la migrazione di un ARN di servizio breve di Amazon ECS a un ARN lungo - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui la migrazione di un ARN di servizio breve di Amazon ECS a un ARN lungo

Amazon ECS assegna un Amazon Resource Name (ARN) univoco a ciascun servizio. I servizi creati prima del 2021 hanno un formato ARN breve:

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

Amazon ECS ha modificato il formato ARN per includere il nome del cluster. Questo è un formato ARN lungo:

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

Il servizio deve avere il formato ARN lungo per poter etichettare il servizio.

È possibile migrare un servizio con un formato ARN breve in un formato ARN lungo senza dover ricreare il servizio. Puoi usare l'API, la CLI o la console. Non è possibile annullare l'operazione di migrazione.

Se desideri utilizzare per AWS CloudFormation etichettare un servizio con un formato ARN breve, devi migrare il servizio utilizzando l'API, la CLI o la console. Una volta completata la migrazione, puoi utilizzare AWS CloudFormation per etichettare il servizio.

Se desideri utilizzare Terraform per etichettare un servizio con un formato ARN breve, devi migrare il servizio utilizzando l'API, la CLI o la console. Al termine della migrazione, puoi utilizzare Terraform per etichettare il servizio.

Una volta completata la migrazione, il servizio presenta le seguenti modifiche:

  • Il formato ARN lungo

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

  • Quando esegui la migrazione utilizzando la console, Amazon ECS aggiunge un tag al servizio con la chiave impostata su «ecs: serviceArnMigrated At» e il valore impostato sul timestamp della migrazione (formato UTC).

    Questo tag viene conteggiato ai fini della tua quota di tag.

  • Quando PhysicalResourceId in uno AWS CloudFormation stack rappresenta un ARN di servizio, il valore non cambia e continuerà a essere l'ARN del servizio breve.

Prerequisiti

Eseguire le seguenti operazioni prima di migrare l'ARN del servizio.

  1. Per verificare se disponi di un ARN di servizio breve, visualizza i dettagli del servizio nella console Amazon ECS (viene visualizzato un avviso quando il servizio ha il formato ARN breve) o il parametro return da. serviceARN describe-services Quando l'ARN non include il nome del cluster, si dispone di un ARN breve. Di seguito è riportato il formato di un ARN breve:

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

  2. Nota la data di creazione.

  3. Se disponi di policy IAM che utilizzano il formato ARN breve, aggiornalo al formato ARN lungo.

    Sostituisci ogni user input placeholder con le tue informazioni.

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

    Per ulteriori informazioni, consulta Modifica delle politiche IAM nella Guida per l' AWS Identity and Access Management utente.

  4. Se disponi di strumenti che utilizzano il formato ARN breve, aggiornalo al formato ARN lungo.

    Sostituisci ogni user input placeholder con le tue informazioni.

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

  5. Abilita il formato ARN lungo del servizio. Esegui put-account-setting con l'opzione serviceLongArnFormat impostata su enabled. Per ulteriori informazioni, put-account-settingconsulta la sezione Amazon Elastic Container Service API Reference.

    Esegui il comando come utente root quando il servizio ha una createdAt data sconosciuta.

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

    Output di esempio

    { "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:role/your-role", "type": user } }
  6. Abilita il formato ARN lungo dell'attività. Ciò consente alle attività eseguite come parte di un servizio di avere il formato ARN lungo. Esegui put-account-setting con l'opzione taskLongArnFormat impostata su enabled. Per ulteriori informazioni, put-account-settingconsulta la sezione Amazon Elastic Container Service API Reference.

    Esegui il comando come utente root quando il servizio ha una createdAt data sconosciuta.

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

    Output di esempio

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

Procedura

Usa quanto segue per migrare l'ARN del servizio.

  1. Apri la console alla v2. https://console.aws.amazon.com/ecs/

  2. Nella pagina Clusters (Cluster), scegli il cluster.

  3. Nella sezione Servizi, scegli un servizio con un avviso nella colonna ARN.

    Viene visualizzata la pagina dei dettagli del servizio.

  4. Scegli Migra a un ARN lungo.

    Viene visualizzata la finestra di dialogo del servizio Migrate.

  5. Scegliere Migrate (Migrazione).

Dopo aver completato i prerequisiti, puoi taggare il tuo servizio. Esegui il comando seguente:

Amazon ECS valuta la possibilità di passare il formato ARN lungo in tag-resource una richiesta API per un servizio con un ARN breve come segnale per migrare il servizio all'utilizzo del formato ARN lungo.

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

L'esempio seguente contrassegna MyService con un tag con una chiave impostata su "" e un valore impostato su TestService ": WebServers

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

Dopo aver completato i prerequisiti, puoi taggare il tuo servizio. Create una aws_ecs_service risorsa e impostate il tags riferimento. Per ulteriori informazioni, consulta Resource: aws_ecs_service nella documentazione di Terraform.

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

Passaggi successivi

Puoi aggiungere tag al servizio. Per ulteriori informazioni, consulta Aggiungere tag alle risorse Amazon ECS.

Se desideri che Amazon ECS propaghi i tag dalla definizione dell'attività o dal servizio all'attività, esegui update-service con il propagateTags parametro. Per ulteriori informazioni, consulta update-service nel Reference. AWS Command Line Interface

Risoluzione dei problemi

Alcuni utenti potrebbero riscontrare il seguente errore durante la migrazione dal formato ARN breve al formato ARN lungo.

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.

Se hai già abilitato l'impostazione dell'serviceLongArnFormataccount ma continui a riscontrare questo errore, è possibile che le impostazioni dell'account per il formato ARN lungo non siano state abilitate per il principale IAM specifico che ha originariamente creato il servizio.

  1. Identifica il principale che ha creato il servizio.

    1. Nella console, le informazioni sono disponibili nel campo Creato da nella scheda Configurazione e rete nella pagina dei dettagli del servizio nella console Amazon ECS.

    2. Per il AWS CLI, esegui il seguente comando:

      Sostituisci user-input con i tuoi valori.

      aws ecs describe-services --cluster cluster-name --services service-name --query 'services[0].{createdBy: createdBy}'
  2. Abilita le impostazioni dell'account richieste per quel committente specifico. Questa operazione può essere eseguita in uno dei seguenti modi:

    1. Assumi l'utente o il ruolo IAM per quel principale. Quindi esegui put-account-setting.

    2. Usa l'utente root per eseguire il comando specificando il principale di creazione con. principal-arn

      Esempio.

      Sostituisci principal-arn con il valore del passaggio 1.

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

Entrambi i metodi abilitano l'impostazione serviceLongArnFormat dell'account richiesta sul principale che ha creato il servizio, il che consente di procedere con la migrazione ARN.