

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マネージド統合ハブのオフボード
<a name="managedintegrations-hub-offboard"></a>

## Hub SDK オフボードプロセスの概要
<a name="hub-offboarding-overview"></a>

ハブオフボーディングプロセスは、 AWS クラウド 管理システムからハブを削除します。クラウドが [DeleteManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_DeleteManagedThing.html) リクエストを送信すると、プロセスは 2 つの主要な目的を達成します。

**デバイス側のアクション**:
+ ハブの内部状態をリセットする
+ ローカルに保存されたすべてのデータを削除する
+ 今後の再オンボーディングに備えてデバイスを準備する

**クラウド側のアクション**:
+ ハブに関連付けられているすべてのクラウドリソースを削除する
+ 前のアカウントからの切断を完了する

お客様は通常、次の場合にハブオフボーディングを開始します。
+ ハブの関連アカウントの変更
+ 既存のハブを新しいデバイスに置き換える

このプロセスにより、ハブ設定間のクリーンで安全な移行が保証され、シームレスなデバイス管理とアカウントの柔軟性が可能になります。

![ハブオフボーディング図](https://docs.aws.amazon.com/ja_jp/iot-mi/latest/devguide/images/iot-managedintegrations-hub-sdk-offboarding-architecture.png)


## 前提条件
<a name="hub-offboarding-prerequisites"></a>
+ オンボーディングされているハブが必要です。手順については、[「ハブのオンボーディング設定](managedintegrations-sdk-v2-cookbook-hubsetup.md)」を参照してください。
+ **/data/aws/iotmi/config/** にある `iotmi_config.json` ファイルで、 に `iot_provisioning_state`が表示されていることを確認します`PROVISIONED`。
+ で参照される永続的な証明書とキーが、指定されたパス`iotmi_config.json`に存在することを確認します。
+ HubOnboarding、Agent、Provisioner、および MQTT プロキシが正しく設定され、実行されていることを確認します。
+ ハブに子デバイスがないことを確認します。[ DeleteManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_DeleteManagedThing.html) API を使用して、続行する前にすべての子デバイスを削除します。

## Hub SDK オフボードプロセス
<a name="hub-offboarding-process"></a>

ハブをオフボードするには、次の手順に従います。

### hub\_managed\_thing ID を取得する
<a name="hub-offboarding-retrieve-hub"></a>

 `iotmi_config.json` ファイルは、 Managed Integrations ハブのマネージドモノ ID を保存するために使用されます。この識別子は、ハブが AWS IoT Managed Integrations サービスと通信できるようにする重要な情報です。マネージド型モノ ID は、JSON ファイルの **rw** (読み取り/書き込み) セクションの `managed_thing_id`フィールドの下に保存されます。これは、次のサンプル設定で確認できます。

```
{
      "ro": {
          "iot_provisioning_method": "FLEET_PROVISIONING",
          "iot_claim_cert_path": "{{PATH}}",
          "iot_claim_pk_path": "{{PATH}}",
          "UPC": "{{UPC}}",
          "sh_endpoint_url": "{{ENDPOINT_URL}}",
          "SN": "{{SN}}",
          "fp_template_name": "{{TEMPLATENAME}}"
      },
      "rw": {
          "iot_provisioning_state": "PROVISIONED",
          "client_id": "{{ID}}",
          "managed_thing_id": "{{ID}}",
          "iot_permanent_cert_path": "{{CERT_PATH}}",
          "iot_permanent_pk_path": "{{KEY}}",
          "metadata": {
              "last_updated_epoch_time": 1747766125
          }
      }
}
```

### オフボードハブにコマンドを送信する
<a name="hub-offboarding-send-cmd"></a>

 アカウントの認証情報を使用して、前のセクションで`managed_thing_id`取得した で コマンドを実行します。

```
aws iot-managed-integrations delete-managed-thing \
    --identifier {{HUB_MANAGED_THING_ID}}
```

### ハブがオフボードされたことを確認する
<a name="hub-offboarding-process-cmd"></a>

 アカウントの認証情報を使用して、前のセクションで`managed_thing_id`取得した で コマンドを実行します。

```
aws iot-managed-integrations get-managed-thing \
    --identifier {{HUB_MANAGED_THING_ID}}
```

### 成功と失敗のシナリオ
<a name="hub-offboarding-scenarios"></a>

#### 成功シナリオ
<a name="hub-offboarding-success-scenarios"></a>

 ハブをオフボードするコマンドが成功した場合、次のサンプルレスポンスが期待されます。

```
{
      "Message" : "Managed Thing resource not found."   
}
```

 さらに、ハブオフボーディングコマンドが成功した場合、次のサンプルが観察`iotmi_config.json`されます。**rw** セクションに `iot_provisioning_state`とオプションで**メタデータ**のみが含まれていることを確認します。**メタデータ**がないことは許容されます。 は **NOT\_PROVISIONED** `iot_provisioning_state`である必要があります。

```
{
      "ro": {
          "iot_provisioning_method": "FLEET_PROVISIONING",
          "iot_claim_cert_path": "{{PATH}}",
          "iot_claim_pk_path": "{{PATH}}",
          "UPC": "1234567890101",
          "sh_endpoint_url": "{{ENDPOINT_URL}}",
          "SN": "1234567890101",
          "fp_template_name": "test-template"
      },
      "rw": {
          "iot_provisioning_state": "NOT_PROVISIONED",
          "metadata": {
              "last_updated_epoch_time": 1747766125
          }
      }
}
```

#### 失敗シナリオ
<a name="hub-offboarding-failure-scenarios"></a>

 ハブをオフボードするコマンドが失敗した場合、次のサンプルレスポンスが期待されます。

```
{
      "Arn" : "{{ARN}}",
      "CreatedAt" : 1.748968266655E9,
      "Id" : "{{ID}}",
      "ProvisioningStatus" : "DELETE_IN_PROGRESS",
      "Role" : "CONTROLLER",
      "SerialNumber" : "{{SERIAL_NO}}",
      "Tags" : { },
      "UniversalProductCode" : "{{UPC}}",
      "UpdatedAt" : 1.748968272107E9
}
```
+  **ProvisioningStatus** が の場合は`DELETE_IN_PROGRESS`、[「Hub recovery](#hub-recovery)」の手順に従ってください。
+  **ProvisioningStatus** が でない場合`DELETE_IN_PROGRESS`、ハブをオフボードするコマンドは Managed Integrations クラウドで失敗するか、 Managed Integrations クラウドで受信されませんでした。[「Hub recovery](#hub-recovery)」の手順に従います。
+  オフボーディングが失敗した場合、`iotmi_config.json`ファイルは以下のサンプルファイルのようになります。

```
{
      "ro": {
          "iot_provisioning_method": "FLEET_PROVISIONING",
          "iot_claim_cert_path": "PATH",
          "iot_claim_pk_path": "PATH",
          "UPC": "123456789101",
          "sh_endpoint_url": "ENDPOINT_URL",
          "SN": "123456789101",
          "fp_template_name": "test-template"
      },
      "rw": {
          "iot_provisioning_state": "PROVISIONED",
          "client_id": "ID",
          "managed_thing_id": "ID",
          "iot_permanent_cert_path": "PATH",
          "iot_permanent_pk_path": "PATH",
          "metadata": {
              "last_updated_epoch_time": 1747766125
          }
      }
}
```

## (オプション) Hub SDK をオフボーディングした後
<a name="hub-offboarding-post-actions"></a>

**重要**  
 以下のシナリオでは、Hub SDK のオフボーディング後に実行するオプションのアクションが失敗した場合、またはオフボーディング後にハブを再オンボーディングする場合に実行するアクションを一覧表示します。

**再オンボード**  <a name="re-onboard"></a>
オフボーディングが成功した場合は、[ステップ 3: マネージド型モノを作成する (フリートプロビジョニング)](managedintegrations-sdk-v2-cookbook-hubsetup.md#managedintegrations-sdk-v2-cookbook-managedthing) と、残りのオンボードプロセスに従って Hub SDK をオンボードします。

**ハブリカバリ**  <a name="hub-recovery"></a>  
**デバイスハブのオフボーディングが成功し、クラウドオフボーディングが失敗する**  
 [ GetManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetManagedThing) API コールが`Managed Thing resource not found`メッセージを返さないが、ファイルが`iotmi_config.json`オフボードされている場合。サンプル JSON ファイルの[「成功シナリオ](#hub-offboarding-success-scenarios)」を参照してください。  
このシナリオから復旧するには、[「強制削除](#forced-deletion)」を参照してください。  
**デバイスハブのオフボーディングが失敗する**  
 このシナリオでは、ファイルが正しくオフボード`iotmi_config.json`されません。サンプル JSON ファイルの[「失敗シナリオ](#hub-offboarding-failure-scenarios)」を参照してください。  
このシナリオから復旧するには、[「強制削除](#forced-deletion)」を参照してください。がまだオフボードされていない場合`iotmi_config.json`は、ハブを工場出荷時リセットする必要があります。  
**デバイスハブのオフボーディングとクラウドオフボーディングが失敗する**  
 このシナリオでは、 `iotmi_config.json`はオフボードされず、ハブステータスは `ACTIVATED`、、または のいずれかです`DISCOVERED`。  
 このシナリオから復旧するには、[「強制削除](#forced-deletion)」を参照してください。強制削除`iotmi_config.json`が失敗した場合、またはオフボードされていない場合は、ハブを工場出荷時リセットする必要があります。  
**ハブがオフラインで、ハブのステータスが DELETE\_IN\_PROGRESS である**  
 このシナリオでは、ハブはオフラインで、クラウドはオフボーディングコマンドを受け取ります。  
 このシナリオから復旧するには、[「強制削除](#forced-deletion)」を参照してください。

**強制削除**  <a name="forced-deletion"></a>
デバイスハブのオフボーディングが成功せずにクラウドリソースを削除するには、次の手順に従います。このオペレーションでは、クラウドとデバイスの状態の間に不整合が発生し、将来のオペレーションで問題が発生する可能性があります。  
ハブの `managed_thing_id`および **force** パラメータを使用して [ DeleteManagedThing ](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_DeleteManagedThing) API を呼び出します。  

```
aws iot-managed-integrations delete-managed-thing \
  --identifier {{HUB_MANAGED_THING_ID}} \
  --force
```
 次に、[GetManagedThing ](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetManagedThing) API を呼び出し、 が返されることを確認します`Managed Thing resource not found`。これにより、クラウドリソースが削除されたことを確認します。  
 このアプローチは、クラウドとデバイスの状態の間に不整合が生じる可能性があるため、推奨されません。通常、クラウドリソースを削除する前に、デバイスハブのオフボーディングを成功させることをお勧めします。