

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Wechseln Sie ein Greengrass Core-Gerät zu einem anderen AWS-Konto oder Region
<a name="switch-core-device-connectivity"></a>

Sie können ein Nucleus-Konfigurationsupdate bereitstellen, um die IoT-Konnektivität eines Kerngeräts von einer AWS-Konto oder einer Region auf eine andere umzustellen. Dies ist in den folgenden Szenarien nützlich:
+ **Übergang von der Fertigung zur Produktion** — Sie stellen Geräte während der Fertigung in einem Bereitstellungskonto bereit und verschieben sie bei der Installation vor Ort auf das Zielkonto.
+ **Geografischer Umzug** — Geräte, die von einer Region in eine andere übertragen werden, müssen eine Verbindung zum AWS IoT Endpunkt der lokalen Region herstellen, um die Latenz zu reduzieren.
+ **Reduzierung der Auswirkungen von Ausfällen** — Sie verteilen Geräte, die ursprünglich auf ein einziges Konto konzentriert waren, auf mehrere Konten, um die Auswirkungen von Problemen auf Kontoebene, wie z. B. Beschränkungen von Servicekontingenten oder Sicherheitsvorfällen, zu begrenzen.

Wenn Sie einen IoT-Konnektivitäts-Switch bereitstellen, validiert der Nucleus die Konnektivität zum neuen Endpunkt, bevor die Änderung übernommen wird, und führt bei einem Verbindungsausfall automatisch ein Rollback durch.

Für diese Funktion ist Greengrass Nucleus v2.18.0 oder höher oder Greengrass Nucleus Lite v2.6.0 oder höher erforderlich.

**Topics**
+ [Voraussetzungen](#switch-connectivity-prerequisites)
+ [Erstellen Sie die Bereitstellung](#switch-connectivity-create-deployment)
+ [Was ist zu erwarten](#switch-connectivity-what-to-expect)
+ [Überprüfen Sie den Switch](#switch-connectivity-verify)

## Voraussetzungen
<a name="switch-connectivity-prerequisites"></a>

Bevor Sie einen Connectivity Switch bereitstellen, richten Sie im Ziel und in der Region Folgendes ein: AWS-Konto 
+ **AWS IoT Ding** — Erstellen Sie ein Ding mit demselben Namen wie im Quellkonto.
+ **Zertifikat** — Registrieren Sie dasselbe Gerätezertifikat im Zielkonto. Das Zertifikat muss dasselbe Zertifikat sein, das das Gerät im Quellkonto verwendet.
+ **AWS IoT Richtlinie** — Hängen Sie eine Richtlinie an das Zertifikat an. Die Richtlinie muss `iot:Connect` mit einem Ressourcen-ARN, der ein Platzhaltersuffix für die Client-ID verwendet, Folgendes zulassen:

  ```
  "Resource": "arn:aws:iot:*:*:client/${iot:Connection.Thing.ThingName}*"
  ```

  Sie müssen das Platzhaltersuffix angeben, da bei der Nucleus-Preflight-Konnektivitätsprüfung die Client-ID verwendet wird. `{{thing-name}}#endpoint-switch`
+ **AWS IoT Rollenalias** — Erstellen Sie einen Rollenalias in der Zielregion mit den entsprechenden IAM-Rollenberechtigungen für Greengrass-Operationen.

**Anmerkung**  
Um AWS IoT Ding-Richtlinienvariablen wie `${iot:Connection.Thing.ThingName}` in der AWS IoT Richtlinie zu verwenden, müssen Sie das Zertifikat ausschließlich an das AWS IoT Ding im Zielkonto anhängen.

Für Greengrass Nucleus Core-Geräte müssen Sie **iotdata** in der Nucleus-Konfiguration auch `greengrassDataPlaneEndpoint` auf einstellen. Nehmen Sie diese Einstellung bei der Bereitstellung des Connectivity Switches oder bei der ersten Bereitstellung auf.

Ohne diese Einstellung bleibt die Datenebene nach dem Switch an das ursprüngliche Konto gebunden. Dadurch werden das Herunterladen von Komponentenartefakten und der Betrieb auf der Kontrollebene unterbrochen. Weitere Informationen finden Sie in den `greengrassDataPlaneEndpoint` Konfigurationsparametern unter[Grüngraskern](greengrass-nucleus-component.md).

Für Greengrass Nucleus Lite Core-Geräte müssen Sie eine private `aws.greengrass.NucleusLite` Komponente in Ihrem Konto erstellen, bevor Sie Konfigurationsupdates für den Nucleus bereitstellen können. AWS IoT Greengrass Bereitstellungen können nur auf Komponenten abzielen, die in der Komponentenregistrierung des Kontos vorhanden sind, und es gibt keine öffentliche Komponente für Nucleus Lite.

Erstellen Sie eine Komponente mit der `aws_nucleus_lite` Laufzeit und einem leeren Lebenszyklus (keine Aktionen). Die Komponentenversion muss mit der Version von Nucleus Lite übereinstimmen, die auf dem Gerät ausgeführt wird.

## Erstellen Sie die Bereitstellung
<a name="switch-connectivity-create-deployment"></a>

Erstellen Sie eine Bereitstellung, die auf das Kerngerät oder dessen Dinggruppe im Quellkonto abzielt. Die Bereitstellung sendet ein Update der Merge-Konfiguration mit den neuen AWS IoT Endpunktwerten an die Nucleus-Komponente.

**Um einen Connectivity-Switch bereitzustellen (AWS CLI)**

1. Erstellen Sie eine Datei mit dem Namen `switch-deployment.json` und folgendem Inhalt. Ersetzen Sie die Platzhalterwerte durch die Werte Ihres Zielkontos.
   + {{targetArn}}Ersetzen Sie durch den ARN der AWS IoT Dinggruppe oder des Kerngeräts im Quellkonto.
   + {{componentName}}Ersetzen Sie durch `aws.greengrass.Nucleus` für Nucleus oder `aws.greengrass.NucleusLite` für Nucleus Lite.
   + {{componentVersion}}Ersetzen Sie es durch die Version von Nucleus, die auf dem Gerät läuft.

   ```
   {
     "targetArn": "{{targetArn}}",
     "deploymentName": "SwitchConnectivity",
     "components": {
       "{{componentName}}": {
         "componentVersion": "{{componentVersion}}",
         "configurationUpdate": {
           "merge": "{\"iotDataEndpoint\":\"{{account-prefix}}-ats.iot.{{region}}.amazonaws.com\",\"iotCredEndpoint\":\"{{account-prefix}}.credentials.iot.{{region}}.amazonaws.com\",\"awsRegion\":\"{{region}}\",\"iotRoleAlias\":\"{{role-alias-name}}\"}"
         }
       }
     },
     "deploymentPolicies": {
       "failureHandlingPolicy": "ROLLBACK"
     }
   }
   ```

   Für Greengrass Nucleus Core-Geräte, die noch nicht auf `greengrassDataPlaneEndpoint` eingestellt sind**iotdata**, fügen Sie es der Merge-Konfiguration hinzu:

   ```
   "merge": "{\"iotDataEndpoint\":\"...\",\"iotCredEndpoint\":\"...\",\"awsRegion\":\"...\",\"iotRoleAlias\":\"...\",\"greengrassDataPlaneEndpoint\":\"iotdata\"}"
   ```

   Kodieren Sie den `merge` Wert als JSON-Zeichenfolge. Maskiert alle inneren Anführungszeichen mit Backslashes (). `\"` Verwenden Sie ein JSON-Validierungstool, um die Syntax zu überprüfen, bevor Sie die Bereitstellung erstellen.

1. Führen Sie den folgenden Befehl aus, um die Bereitstellung zu erstellen.

   ```
   aws greengrassv2 create-deployment \
     --cli-input-json file://switch-deployment.json
   ```

## Was ist zu erwarten
<a name="switch-connectivity-what-to-expect"></a>

Der Nucleus validiert die Konnektivität mit dem neuen Endpunkt, bevor die Änderung angewendet wird. Wenn das Gerät keine Verbindung zum neuen Endpunkt herstellen kann, schlägt die Bereitstellung fehl und das Gerät bleibt mit dem Quellkonto verbunden.

Der Nucleus verwendet die Client-ID `{{thing-name}}#endpoint-switch` für die Konnektivitätsprüfung vor dem Flug.

Nach dem Anwenden der Konfiguration testet der Nucleus die Konnektivität zum neuen Endpunkt. Wenn die Konnektivität fehlschlägt, kehrt der Nucleus automatisch zur ursprünglichen Konfiguration zurück. Die Bereitstellungsberichte `FAILED` werden im Quellkonto angezeigt.

Wenn der Konnektivitätswechsel erfolgreich ist, wird die Bereitstellung `SUCCEEDED` im Quellkonto gemeldet. AWS IoT Greengrass erstellt ein Core-Gerät in dem Konto und der Region, die dem neuen Endpunkt zugeordnet sind.

**Anmerkung**  
Während des Konnektivitätswechsels startet der Nucleus Komponenten neu, die stark vom Token-Austauschdienst abhängig sind. Bei diesem Neustart werden die Anmeldeinformationen vom neuen Endpunkt der AWS IoT Anmeldeinformationen aktualisiert. Der Nucleus startet andere Komponenten nicht neu, und sie laufen mit ihrem vorhandenen Status weiter.

## Überprüfen Sie den Switch
<a name="switch-connectivity-verify"></a>

Stellen Sie nach Abschluss der Bereitstellung sicher, dass der Konnektivitätswechsel erfolgreich war.

**Um den Konnektivitätsschalter zu überprüfen**

1. Überprüfen Sie den Bereitstellungsstatus im Quellkonto. Die Bereitstellungsberichte, `SUCCEEDED` nachdem das Gerät eine Verbindung zum neuen Endpunkt hergestellt hat.

   ```
   aws greengrassv2 list-effective-deployments \
     --core-device-thing-name {{thing-name}}
   ```

1. Stellen Sie sicher, dass das Kerngerät im Zielkonto angezeigt wird. Öffnen Sie die [AWS IoT Greengrass Konsole](https://console.aws.amazon.com/greengrass) oder führen Sie den folgenden Befehl aus.

   ```
   aws greengrassv2 get-core-device \
     --core-device-thing-name {{thing-name}}
   ```

Das AWS IoT Ding und der Datensatz für das Kerngerät verbleiben nach dem Wechsel im Quellkonto. Um zu verhindern, dass future Bereitstellungen auf das Gerät abzielen, entfernen Sie es aus der Dinggruppe des Quellkontos.

Wenn der Bereitstellungsstatus nicht lautet`SUCCEEDED`, überprüfen Sie das Greengrass-Protokoll `{{/greengrass/v2}}/logs/greengrass.log` auf dem Gerät auf Fehlerdetails. Allgemeine Fehlercodes im Zusammenhang mit dem Betrieb von Connectivity-Switches finden Sie unter[Detaillierte Fehlercodes für die Bereitstellung](troubleshooting-deployment.md).