

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、[「 からの移行 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)」を参照してください。

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

# AWS IoT Greengrass コアに AWS IoT Greengrass グループをデプロイする
<a name="deployments"></a>

 AWS IoT Greengrass グループを使用して、エッジ環境でエンティティを整理します。また、グループ内のエンティティ同士のやり取りや、 AWS クラウドとのやり取りを制御する用途にも使用します。例えば、グループ内の Lambda 関数のみをローカルでの実行用にデプロイし、グループ内のデバイスのみがローカル MQTT サーバーを使用して通信できます。

グループには、 [Core](gg-core.md) ソフトウェアを実行する AWS IoT デバイスである AWS IoT Greengrass Core を含める必要があります。コアはエッジゲートウェイとして機能し、エッジ環境で AWS IoT Core 機能を提供します。ビジネスニーズに応じて、次のエンティティをグループに追加することもできます。
+ **クライアントデバイス**。 AWS IoT レジストリでモノとして表されます。Greengrass デバイスは [FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-lib-gg-connectivity.html) を実行するか、[AWS IoT Device SDK](what-is-gg.md#iot-device-sdk) または [AWS IoT Greengrass Discovery API](gg-discover-api.md) を使用して、コアの接続情報を取得します。グループのメンバーであるクライアントデバイスのみが Core に接続できます。
+ **Lambda 関数**。コアでコードを実行する、ユーザー定義のサーバーレスアプリケーションです。Lambda 関数は Greengrass グループで作成 AWS Lambda され、Greengrass グループから参照されます。詳細については、「[AWS IoT Greengrass コアで Lambda 関数を実行する](lambda-functions.md)」を参照してください。
+ **コネクタ**。コアでコードを実行する事前定義されたサーバーレスアプリケーションです。コネクタは、ローカルインフラストラクチャ、デバイスプロトコル AWS、その他のクラウドサービスとの統合を組み込みます。詳細については、「[Greengrass コネクタを使用したサービスおよびプロトコルとの統合](connectors.md)」を参照してください。
+ **サブスクリプション**。MQTT 通信が承認されている発行者、受信者、および MQTT トピック（またはサブジェクトなど）を定義します。
+ **リソース**。ローカルの[デバイスとボリューム](access-local-resources.md)、[機械学習モデル](ml-inference.md)、[シークレット](secrets.md)を参照し、Greengrass Lambda 関数およびコネクタによるアクセス制御に使用されます。
+ **ログ**。 AWS IoT Greengrass システムコンポーネントと Lambda 関数のログ記録設定。詳細については、「[AWS IoT Greengrass ログによるモニタリング](greengrass-logs-overview.md)」を参照してください。

で Greengrass グループを管理し AWS クラウド 、コアにデプロイします。デプロイは、グループ設定を Core デバイスの `group.json` ファイルにコピーします。このファイルは `{{greengrass-root}}/ggc/deployments/group` にあります。

![コアデバイスにデプロイされた Greengrass グループのクラウド定義。](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/group-deploy.png)


**注記**  
デプロイ中、コアデバイスの Greengrass デーモンプロセスは停止し、再起動します。

## AWS IoT コンソールからのグループのデプロイ
<a name="manage-deployments-console"></a>

グループをデプロイし、 AWS IoT コンソールのグループの設定ページからそのデプロイを管理できます。

**注記**  
コンソールでこのページを開くには、**[Greengrass]**を選択してから、**[Groups (V1)]** (グループ 〔V1〕) を選択し、**[Greengrass groups]** (Greengrass グループ) からグループを選択します。

**グループの現在のバージョンをデプロイするには**  
+ グループ設定ページで、**[Deploy]** (デプロイ) を選択します。

**グループのデプロイ履歴を表示するには**  
グループのデプロイ履歴には、各デプロイの試行の日時、グループバージョン、ステータスが含まれます。  

1. グループ設定ページで、**[Deployment]** (デプロイ) タブを選択します。

1. エラーメッセージを含むデプロイの詳細については、**Greengrass デバイスの** AWS IoT コンソールから**デプロイ**を選択します。

**グループのデプロイを再デプロイするには**  
現在のデプロイが失敗した場合、または別のグループバージョンに戻した場合は、デプロイを再デプロイできます。  

1.  AWS IoT コンソールから **Greengrass デバイス**を選択し、**グループ (V1)** を選択します。

1. **[Deployment]** (デプロイ) タブを選択します。

1. 再デプロイするデプロイを選択し、**[Redeploy]** (再デプロイ) を選択します。

**グループのデプロイをリセットするには**  
グループデプロイをリセットして、グループを移動または削除したり、デプロイ情報を削除したりできます。詳細については、「[デプロイのリセット](reset-deployments-scenario.md)」を参照してください。  

1.  AWS IoT コンソールから **Greengrass デバイス**を選択し、**グループ (V1)** を選択します。

1. **[Deployment]** (デプロイ) タブを選択します。

1. リセットするデプロイを選択し、**[Reset deployments]** (デプロイのリセット) を選択します。

## AWS IoT Greengrass API を使用したグループのデプロイ
<a name="manage-deployments-api"></a>

 AWS IoT Greengrass API には、 AWS IoT Greengrass グループをデプロイし、グループデプロイを管理するための以下のアクションが用意されています。これらのアクションは AWS CLI、、 AWS IoT Greengrass API、または AWS SDK から呼び出すことができます。


| [アクション] | 説明 | 
| --- | --- | 
| [CreateDeployment](https://docs.aws.amazon.com/greengrass/v1/apireference/createdeployment-post.html) | `NewDeployment` または `Redeployment` デプロイを作成します。<br />現在のデプロイが失敗した場合は、デプロイを再デプロイできます。または、再デプロイして別のグループバージョンに戻すこともできます。 | 
| [GetDeploymentStatus](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html) | デプロイのステータス、`Building`、`InProgress`、`Success`、または `Failure` を返します。<br />デプロイ通知を受信するように Amazon EventBridge イベントを設定できます。詳細については、「[デプロイ通知の取得](deployment-notifications.md)」を参照してください。 | 
| [ListDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/listdeployments-get.html) | グループのデプロイ履歴を返します。 | 
| [ResetDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/resetdeployments-post.html) | グループのデプロイをリセットします。<br />グループデプロイをリセットして、グループを移動または削除したり、デプロイ情報を削除したりできます。詳細については、「[デプロイのリセット](reset-deployments-scenario.md)」を参照してください。 | 

**注記**  
一括デプロイオペレーションの詳細については、「[グループの一括デプロイを作成する](bulk-deploy-cli.md)」を参照してください。

### グループ ID の取得
<a name="api-get-group-id"></a>

グループ ID は、API アクションで共通して使用されます。 [ListGroups](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroups-get.html) アクションを使用して、グループのリストからターゲットグループの ID を検索できます。たとえば、 で AWS CLIコマンドを使用します`list-groups`。

```
aws greengrass list-groups
```

結果をフィルタリングする `query` オプションを含めることもできます。例:
+ 最後に作成されたグループを取得するには、次の操作を行います。

  ```
  aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
  ```
+ 名前によりグループを取得するには:

  ```
  aws greengrass list-groups --query "Groups[?Name=='{{MyGroup}}']"
  ```

  グループ名は一意である必要はないため、複数のグループが返されることがあります。

以下に、`list-groups` 応答の例を示します。各グループの情報には、グループの ID (`Id` プロパティ) と最新のグループバージョンの ID (`LatestVersion` プロパティ) が含まれます。グループの他のバージョン ID を取得するには、[ListGroupVersions](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroupversions-get.html) とともにグループ ID を使用します。

**注記**  
<a name="find-group-ids-console"></a>これらの値は AWS IoT コンソールでも確認できます。グループ ID は、グループの [**設定**] ページに表示されます。グループバージョン ID は、グループの **[デプロイ]** タブに表示されます。

```
{
    "Groups": [
        {
            "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
            "Name": "MyFirstGroup",
            "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
            "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
            "CreationTimestamp": "2019-11-11T05:47:31.435Z",
            "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
            "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
        },
        {
            "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
            "Name": "GreenhouseSensors",
            "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
            "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
            "CreationTimestamp": "2020-01-07T19:58:36.774Z",
            "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
            "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
        },
        ...
    ]
}
```

を指定しない場合 AWS リージョン、 AWS CLI コマンドはプロファイルからデフォルトのリージョンを使用します。別のリージョンのグループを返すには、{{リージョン}}オプションを含めます。例えば、次のようになります。

```
aws greengrass list-groups --region us-east-1
```

## AWS IoT Greengrass グループオブジェクトモデルの概要
<a name="api-overview"></a>

 AWS IoT Greengrass API を使用してプログラミングする場合、Greengrass グループオブジェクトモデルを理解すると便利です。

### グループ
<a name="api-overview-groups"></a>

 AWS IoT Greengrass API では、最上位`Group`オブジェクトはメタデータと`GroupVersion`オブジェクトのリストで構成されます。 `GroupVersion` オブジェクトは ID `Group`によって に関連付けられます。

![メタデータとグループバージョンのリストで構成されるグループの図。](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/om-group.png)


### グループバージョン
<a name="api-overview-versions"></a>

`GroupVersion` オブジェクトは、グループメンバーシップを定義します。各 `GroupVersion` は、ARN によって `CoreDefinitionVersion` およびその他のコンポーネントバージョンを参照します。これらの参照は、グループに含めるエンティティを決定します。

![ARN で他のバージョンタイプを参照するグループバージョンの図。](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/om-groupversion.png)


例えば、グループに 3 つの Lambda 関数、1 つのデバイス、2 つのサブスクリプションを含めるには、`GroupVersion` で次を参照します。
+ 必要なコアを含む `CoreDefinitionVersion`。
+ 3 つの関数を含む `FunctionDefinitionVersion`。
+ クライアントデバイスを含む `DeviceDefinitionVersion` デバイス。
+ 2 つのサブスクリプションを含む `SubscriptionDefinitionVersion`。

コアデバイスにデプロイされた `GroupVersion` によって、ローカル環境で使用できるエンティティと、それらのエンティティがどのようにやり取りできるかが決まります。

### グループコンポーネント
<a name="api-overview-group-components"></a>

グループに追加するコンポーネントには、3 つのレベルの階層があります。
+ 定義は特定のタイプの *DefinitionVersion* オブジェクトのリストを参照します。例えば、`DeviceDefinition` は `DeviceDefinitionVersion` オブジェクトのリストを参照します。
+ 特定のタイプのエンティティのセットを含む *DefinitionVersion*。例えば、`DeviceDefinitionVersion` には、`Device` オブジェクトのリストが含まれています。
+ プロパティと動作を定義する個々のエンティティ。たとえば、 は AWS IoT レジストリ内の対応するクライアントデバイスの ARN、デバイス証明書の ARN、およびローカルシャドウがクラウドと自動的に同期するかどうか`Device`を定義します。

  グループには、次のタイプのエンティティを追加できます。
  + [コネクタ](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-connector.html)
  + [コア](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-core.html)
  + [デバイス](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-device.html)
  + [関数](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-function.html)
  + [ロガー](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-logger.html)
  + [[リソース]](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-resource.html) 
  + [サブスクリプション](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-subscription.html)

次の例では、`DeviceDefinition` は、それぞれに複数の `Device` オブジェクトを含む 3 つの `DeviceDefinitionVersion` オブジェクトを参照します。グループでは、一度に 1 つの `DeviceDefinitionVersion` のみが使用されます。

![DeviceDefinition、DeviceDefinitionVersion、Device オブジェクトで構成されるデバイス階層の図。](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/om-devicedefinition.png)


### グループの更新
<a name="api-update-groups"></a>

 AWS IoT Greengrass API では、バージョンを使用してグループの設定を更新します。バージョンは変更不可であるため、グループコンポーネントを追加、削除、または変更するには、新規または更新されたエンティティを含む *DefinitionVersion* オブジェクトを作成する必要があります。

新しい *DefinitionVersions* オブジェクトを新規または既存の*定義*オブジェクトに関連付けることができます。例えば、 `CreateFunctionDefinition` アクションを使用して、`FunctionDefinitionVersion` を初期バージョンとして含む `FunctionDefinition` を作成したり、 `CreateFunctionDefinitionVersion` アクションを使用して既存の `FunctionDefinition` を参照したりできます。

グループコンポーネントを作成したら、そのグループのメンバーにする、すべての DefinitionVersion オブジェクトを含む `GroupVersion` を作成します。次に、`GroupVersion` をデプロイします。

`GroupVersion` をデプロイするには、1 つだけ `Core` を含む `CoreDefinitionVersion` を参照する必要があります。参照されるエンティティはすべて、グループのメンバーである必要があります。また、[Greengrass サービスロール](service-role.md)は、 をデプロイ AWS リージョン する AWS アカウント の に関連付ける必要があります`GroupVersion`。

**注記**  
API の `Update` アクションは、 `Group` またはコンポーネント*定義*オブジェクトの名前を変更するために使用されます。

** AWS リソースを参照するエンティティの更新**

Greengrass Lambda 関数と[シークレットリソース](secrets.md)は、Greengrass 固有のプロパティを定義し、対応する AWS リソースも参照します。これらのエンティティを更新するには、Greengrass オブジェクトではなく、対応する AWS リソースに変更を加えることができます。例えば、Lambda 関数は で関数を参照 AWS Lambda し、Greengrass グループに固有のライフサイクルやその他のプロパティも定義します。
+ Lambda 関数コードまたはパッケージ化された依存関係を更新するには、 AWS Lambdaで変更を加えます。次のグループのデプロイ時に、これらの変更は から取得 AWS Lambda され、ローカル環境にコピーされます。
+ [Greengrass 固有のプロパティ](lambda-group-config.md)を更新するには、更新された `Function` プロパティを含む `FunctionDefinitionVersion` を作成します。

**注記**  
Greengrass Lambda 関数は、エイリアス ARN またはバージョン ARN で Lambda 関数を参照できます。エイリアス ARN を参照する場合 (推奨)、 AWS Lambdaで新しい関数バージョンを作成するときに `FunctionDefinitionVersion` (または `SubscriptionDefinitionVersion`) を更新する必要はありません。詳細については、「[エイリアスまたはバージョンによる Lambda 関数のリファレンス](lambda-functions.md#lambda-versions-aliases)」を参照してください。

## 関連情報
<a name="deployments-see-also"></a>
+ [デプロイ通知の取得](deployment-notifications.md)
+ [デプロイのリセット](reset-deployments-scenario.md)
+ [グループの一括デプロイを作成する](bulk-deploy-cli.md)
+ [デプロイの問題のトラブルシューティング](gg-troubleshooting.md#gg-troubleshooting-deploymentissues)<a name="see-also-gg-api-cli"></a>
+ [AWS IoT Greengrass Version 1 API リファレンス](https://docs.aws.amazon.com/greengrass/v1/apireference/)
+ <a name="see-also-gg-cli"></a>[AWS IoT Greengrass コマンド](https://docs.aws.amazon.com/cli/latest/reference/greengrass/index.html)*AWS CLI リファレンスの コマンド*