サブデプロイを作成する - AWS IoT Greengrass

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

サブデプロイを作成する

注記

サブデプロイ機能は、Greengrass nucleus バージョン 2.9.0 以降で使用できます。Greengrass nucleus の旧コンポーネントバージョンでは、設定をサブデプロイにデプロイすることはできません。

サブデプロイは、親デプロイ内のデバイスのより小さなサブセットをターゲットとするデプロイです。サブデプロイを使用して、デバイスのより小さなサブセットに設定をデプロイできます。サブデプロイを作成して、親デプロイ内の 1 つ以上のデバイスで失敗した場合に、失敗した親デプロイを再試行することもできます。この機能を使用すると、その親デプロイで失敗したデバイスを選択し、サブデプロイを作成して、そのサブデプロイが成功するまで設定をテストできます。サブデプロイが成功したら、その設定を親デプロイに再デプロイできます。

サブデプロイを作成し、そのステータスを確認するには、このセクションのステップに従います。デプロイを作成する方法の詳細については、「デプロイの作成」を参照してください。

サブデプロイを作成するには (AWS CLI)
  1. 次のコマンドを実行して、モノのグループの最新のデプロイを取得します。コマンド内の ARN を、クエリするモノグループの ARN に置き換えます。--history-filterLATEST_ONLY に設定すると、そのモノのグループの最新のデプロイが表示されます。

    aws greengrassv2 list-deployments --target-arn arn:aws:iot:region:account-id:thinggroup/thingGroupName --history-filter LATEST_ONLY
  2. 次のステップで使用する list-deployments コマンドに対するレスポンスから deploymentId をコピーします。

  3. 次のコマンドを実行し、デプロイのステータスを取得します。deploymentId をクエリするデプロイの ID に置き換えます。

    aws greengrassv2 get-deployment --deployment-id deploymentId
  4. 次のステップで使用する get-deployment コマンドに対するレスポンスから iotJobId をコピーします。

  5. 次のコマンドを実行して、指定されたジョブの実行リストを取得します。jobID を前のステップの iotJobId に置き換えます。status を、フィルタリングするステータスに置き換えます。次のステータスで結果をフィルタリングできます。

    • QUEUED

    • IN_PROGRESS

    • SUCCEEDED

    • FAILED

    • TIMED_OUT

    • REJECTED

    • REMOVED

    • CANCELED

    aws iot list-job-executions-for-job --job-id jobID --status status
  6. サブデプロイのために、新しい AWS IoT モノのグループを作成するか、または既存のモノのグループを使用します。その後、このモノのグループに AWS IoT モノを追加します。モノグループを使用して Greengrass コアデバイスのフリートを管理します。ソフトウェアコンポーネントをデバイスにデプロイするとき、個々のデバイスまたはデバイスのグループのいずれかを対象にできます。アクティブな Greengrass デプロイを備えたモノのグループにデバイスを追加できます。追加すると、そのモノのグループのソフトウェアコンポーネントをそのデバイスにデプロイできるようになります。

    新しいモノのグループを作成して、それにデバイスを追加するには、次を実行します。

    1. AWS IoT モノのグループを作成します。 を新しいモノのグループの名前MyGreengrassCoreGroupに置き換えます。モノのグループ名にコロン (:) は使用できません。

      注記

      サブデプロイのモノのグループが 1 つの parentTargetArn で使用されている場合、それを別の親フリートで再利用することはできません。あるモノのグループが別のフリートのサブデプロイを作成するために既に使用されている場合、API はエラーを返します。

      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup

      リクエストが正常に処理された場合、レスポンスは次の例のようになります。

      { "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" }
    2. プロビジョンド Greengrass コアをモノのグループに追加します。次のパラメータを使用して次のコマンドを実行します。

      • をプロビジョニングされた Greengrass コアの名前MyGreengrassCoreに置き換えます。

      • をモノのグループの名前MyGreengrassCoreGroupに置き換えます。

      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup

      要求が正常に処理された場合、コマンドは出力されません。

  7. deployment.json という名前のファイルを作成して、次の JSON オブジェクトをファイルにコピーします。targetArn をサブデプロイがターゲットとする AWS IoT モノのグループの ARN に置き換えます。サブデプロイのターゲットにできるのは、モノのグループのみです。モノのグループの ARN の形式は、次のとおりです。

    • モノのグループarn:aws:iot:region:account-id:thinggroup/thingGroupName

    { "targetArn": "targetArn" }
  8. 次のコマンドを再度実行して、元のデプロイの詳細を取得します。これらの詳細には、メタデータ、コンポーネント、ジョブ構成が含まれます。deploymentIdステップ 1 の ID に置き換えます。このデプロイ設定を使用してサブデプロイを設定し、必要に応じて変更できます。

    aws greengrassv2 get-deployment --deployment-id deploymentId

    レスポンスには、デプロイの詳細が含まれています。get-deployment コマンドのレスポンスにある次のキーと値のペアを deployment.json にコピーします。これらの値を、サブデプロイ向けに変更することができます。このコマンドの詳細については、「」を参照してくださいGetDeployment

    • components - デプロイのコンポーネント。コンポーネントをアンインストールする場合は、このオブジェクトから削除してください。

    • deploymentName - デプロイの名前。

    • deploymentPolicies - デプロイのポリシー。

    • iotJobConfiguration - デプロイのジョブ設定。

    • parentTargetArn – 親デプロイのターゲット。

    • tags - デプロイのタグ。

  9. 次のコマンドを実行して、deployment.json からサブデプロイを作成します。subdeploymentName をサブデプロイの名前に置き換えます。

    aws greengrassv2 create-deployment --deployment-name subdeploymentName --cli-input-json file://deployment.json

    レスポンスには、このサブデプロイを識別する deploymentId が含まれます。デプロイ ID を使用して、デプロイのステータスを確認できます。詳細については、「デプロイのステータスを確認する」を参照してください。

  10. サブデプロイが成功した場合は、その設定を使用して親デプロイを修正できます。前のステップで使用した deployment.json をコピーします。JSON ファイルの targetArn を親デプロイの ARN に置き換え、次のコマンドを実行してこの新しい設定で親デプロイを作成します。

    注記

    親フリートの新しいデプロイリビジョンを作成すると、その親デプロイのすべてのデプロイリビジョンとサブデプロイが置き換えられます。詳細については、「デプロイの変更」を参照してください。

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

    レスポンスには、このデプロイを識別する deploymentId が含まれます。デプロイ ID を使用して、デプロイのステータスを確認できます。詳細については、「デプロイのステータスを確認する」を参照してください。