Migrieren eines kurzen ARN für einen Amazon ECS Service zu einem langen ARN - Amazon Elastic Container Service

Migrieren eines kurzen ARN für einen Amazon ECS Service zu einem langen ARN

Amazon ECS weist jedem Service einen eindeutigen Amazon-Ressourcennamen (ARN) zu. Services, die vor 2021 erstellt wurden, haben ein kurzes ARN-Format:

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

Amazon ECS hat das ARN-Format dahingehend geändert, dass es den Cluster-Namen enthält. Dies ist ein langes ARN-Format:

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

Ihr Service muss das lange ARN-Format aufweisen, um getaggt werden zu können.

Sie können einen Service mit einem kurzen ARN-Format in das lange ARN-Format migrieren, ohne den Service neu erstellen zu müssen. Dazu können Sie die API, CLI oder Konsole verwenden. Sie können den Migrationsvorgang nicht rückgängig machen.

Der Migrationsprozess ist reibungslos und gewährleistet, dass Ihr Service keine Ausfallzeiten hat. Während der Migration:

  • Serviceverfügbarkeit: Ihr Service läuft weiterhin normal, ohne dass der Datenverkehr oder die Funktionalität unterbrochen werden.

  • Laufende Aufgaben: Bestehende Aufgaben werden weiterhin ohne Unterbrechung ausgeführt. Neue Aufgaben, die nach der Migration gestartet werden, verwenden das lange ARN-Format, wenn die Kontoeinstellung taskLongArnFormat aktiviert ist.

  • Container-Instances: Container-Instances sind von der Service-ARN-Migration nicht betroffen und funktionieren weiterhin normal.

  • Servicekonfiguration: Alle Serviceeinstellungen, einschließlich Aufgabendefinition, Netzwerk und Load Balancer-Konfigurationen, bleiben unverändert.

Wenn Sie CloudFormation verwenden möchten, um einen Service mit einem kurzen ARN-Format zu markieren, müssen Sie den Service mithilfe der API, CLI oder Konsole migrieren. Nach Abschluss der Migration können Sie CloudFormation verwenden, um den Service zu markieren.

Wenn Sie Terraform verwenden möchten, um einen Service mit einem kurzen ARN-Format zu markieren, müssen Sie den Service mithilfe der API, CLI oder Konsole migrieren. Nach Abschluss der Migration können Sie Terraform verwenden, um den Service zu markieren.

Nach Abschluss der Migration weist der Service folgende Änderungen auf:

  • Das lange ARN-Format

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

  • Wenn Sie mithilfe der Konsole migrieren, fügt Amazon ECS dem Service ein Tag hinzu, wobei der Schlüssel auf „ecs:ServiceArnMigratedAt“ und der Wert auf den Migrationszeitstempel (UTC-Format) gesetzt ist.

    Dieses Tag wird auf Ihr Tag-Kontingent angerechnet.

  • Wenn die PhysicalResourceId in einem CloudFormation-Stack einen Service-ARN darstellt, ändert sich der Wert nicht und es wird weiterhin der kurze Service-ARN sein.

Voraussetzungen

Führen Sie die folgenden Vorgänge aus, bevor Sie den Service-ARN migrieren.

  1. Um zu sehen, ob Sie einen kurzen Service-ARN haben, sehen Sie sich die Servicedetails in der Amazon-ECS-Konsole an (Sie erhalten eine Warnung, wenn der Service das kurze ARN-Format hat) oder den serviceARN-Rückgabeparameter von describe-services. Wenn der ARN den Cluster-Namen nicht enthält, haben Sie einen kurzen ARN. Hier ist das Format eines kurzen ARN:

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

  2. Notieren Sie sich das Erstellungsdatum.

  3. Wenn Sie IAM-Richtlinien haben, die das kurze ARN-Format verwenden, aktualisieren Sie es auf das lange ARN-Format.

    Ersetzen Sie jedes Platzhalter für Benutzereingaben durch Ihre eigenen Informationen.

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

    Weitere Informationen finden Sie unter IAM-Richtlinien bearbeiten im Benutzerhandbuch für AWS Identity and Access Management.

  4. Wenn Sie Tools haben, die das kurze ARN-Format verwenden, aktualisieren Sie es auf das lange ARN-Format.

    Ersetzen Sie jedes Platzhalter für Benutzereingaben durch Ihre eigenen Informationen.

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

  5. Aktivieren Sie das lange ARN-Format für den Service. Führen Sie Folgendes aus: put-account-setting mit der Option serviceLongArnFormat festgelegt auf enabled. Weitere Informationen finden Sie unter put-account-setting in der API-Referenz zu Amazon Elastic Container Service.

    Führen Sie den Befehl als Root-Benutzer aus, wenn Ihr Service ein unbekanntes createdAt-Datum hat.

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

    Beispielausgabe

    { "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:role/your-role", "type": user } }
  6. Aktivieren Sie das lange ARN-Format für die Aufgabe. Diese Kontoeinstellung steuert das ARN-Format für neue Aufgaben, die nach Abschluss der Service-Migration gestartet werden. Führen Sie Folgendes aus: put-account-setting mit der Option taskLongArnFormat festgelegt auf enabled. Weitere Informationen finden Sie unter put-account-setting in der API-Referenz zu Amazon Elastic Container Service.

    Führen Sie den Befehl als Root-Benutzer aus, wenn Ihr Service ein unbekanntes createdAt-Datum hat.

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

    Beispielausgabe

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

    Mit der taskLongArnFormat-Einstellung werden vorhandene Aufgaben nicht direkt migriert. Die Einstellung wirkt sich nur auf das ARN-Format neuer Aufgaben aus, die nach der Aktivierung der Einstellung erstellt werden. Bestehende laufende Aufgaben behalten ihr aktuelles ARN-Format bei, bis sie durch normale Servicevorgänge (wie Bereitstellungen oder Skalierungsaktionen) ersetzt werden.

Verfahren

Gehen Sie wie folgt vor, um Ihren Service-ARN zu migrieren.

  1. Öffnen Sie die Konsole unter https://console.aws.amazon.com/ecs/v2.

  2. Wählen Sie auf der Cluster-Seite den Cluster aus.

  3. Wählen Sie im Abschnitt Services einen Service aus, für den in der Spalte ARN eine Warnung angezeigt wird.

    Die Service-Detailseite wird angezeigt.

  4. Wählen Sie Zu langem ARN migrieren aus.

    Das Dialogfeld Service migrieren wird angezeigt.

  5. Wählen Sie Migrate (Migrieren).

Sobald Sie die Voraussetzungen erfüllen, können Sie Ihren Service markieren. Führen Sie den folgenden Befehl aus:

Amazon ECS betrachtet die Übergabe des langen ARN-Formats in einer tag-resource-API-Anfrage für einen Service mit einem kurzen ARN als Signal für die Migration des Service zur Verwendung des langen ARN-Formats.

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

Im folgenden Beispiel wird MyService mit einem Tag versehen, dessen Schlüssel auf „TestService“ und dessen Wert auf „WebServers“ gesetzt ist:

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

Sobald Sie die Voraussetzungen erfüllen, können Sie Ihren Service markieren. Erstellen Sie eine aws_ecs_service-Ressource und legen Sie die tags-Referenz fest. Weitere Informationen finden Sie unter Resource: aws_ecs_service in der Terraform-Dokumentation.

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

Nächste Schritte

Sie können dem Service Tags hinzufügen. Weitere Informationen finden Sie unter Hinzufügen von Tags zu Amazon-ECS-Ressourcen.

Wenn Sie möchten, dass Amazon ECS die Tags von der Aufgabendefinition oder dem Service an die Aufgabe weitergibt, führen Sie update-service mit dem propagateTags-Parameter aus. Weitere Informationen finden Sie unter update-service in der Referenz zu AWS Command Line Interface.

Fehlersuche

Bei einigen Benutzern tritt möglicherweise der folgende Fehler auf, wenn sie vom kurzen ARN-Format zum langen ARN-Format migrieren.

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.

Wenn Sie die serviceLongArnFormat-Kontoeinstellung bereits aktiviert haben, aber dieser Fehler immer noch auftritt, liegt das möglicherweise daran, dass die Kontoeinstellungen für das lange ARN-Format nicht für den spezifischen IAM-Prinzipal aktiviert wurden, der den Service ursprünglich erstellt hat.

  1. Identifizieren Sie den Prinzipal, der den Service erstellt hat.

    1. In der Konsole sind die Informationen im Feld Erstellt von auf der Registerkarte Konfiguration und Netzwerk auf der Seite mit den Servicedetails in der Amazon-ECS-Konsole verfügbar.

    2. Führen Sie in der AWS CLI den folgenden Befehl aus:

      Ersetzen Sie user-input durch Ihre eigenen Werte.

      aws ecs describe-services --cluster cluster-name --services service-name --query 'services[0].{createdBy: createdBy}'
  2. Aktivieren Sie die erforderlichen Kontoeinstellungen für diesen bestimmten Prinzipal. Sie können dafür eine der folgenden Möglichkeiten auswählen:

    1. Nehmen Sie den IAM-Benutzer oder die IAM-Rolle für diesen Prinzipal an. Führen Sie dann put-account-setting aus.

    2. Verwenden Sie den Root-Benutzer, um den Befehl auszuführen und gleichzeitig den erstellenden Prinzipal mit dem principal-arn anzugeben.

      Beispiel.

      Ersetzen Sie principal-arn durch den Wert aus Schritt 1.

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

Beide Methoden aktivieren die erforderliche serviceLongArnFormat-Kontoeinstellung für den Prinzipal, der den Service erstellt hat, sodass die ARN-Migration fortgesetzt werden kann.