

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

# デプロイ
<a name="gg-cli-deployment"></a>

`deployment` コマンドを使用することで、コアデバイス上のローカルコンポーネントとやり取りすることができます。

ローカルデプロイの進行状況を監視するには、`status` サブコマンドを使用します。コンソールを使用してローカルデプロイの進行状況を監視することはできません。

**サブコマンド**
+ [作成](#deployment-create)
+ [キャンセル](#deployment-cancel)
+ [リスト](#deployment-list)
+ [ステータス](#deployment-status)

## 作成
<a name="deployment-create"></a>

指定されたコンポーネントレシピ、アーティファクト、ランタイム引数を使用して、ローカルデプロイを作成または更新します。

**概要**  

```
greengrass-cli deployment create 
    --recipeDir path/to/component/recipe
    [--artifactDir path/to/artifact/folder ]
    [--update-config {component-configuration}]
    [--groupId <thing-group>]
    [--merge "<component-name>=<component-version>"]...
    [--runWith "<component-name>:posixUser=<user-name>[:<group-name>]"]...
    [--systemLimits "{component-system-resource-limits}]"]...
    [--remove <component-name>,...]
    [--failure-handling-policy <policy name[ROLLBACK, DO_NOTHING]>]
```

**引数**:  
+ `--recipeDir`、`-r`。コンポーネントレシピファイルが格納されているフォルダへのフルパス。
+ `--artifactDir`、`-a`。デプロイに含めるアーティファクトファイルが含まれるフォルダへのフルパス。アーティファクトフォルダには、以下のディレクトリ構造が含まれている必要があります。

  ```
  /path/to/artifact/folder/<component-name>/<component-version>/<artifacts>
  ```
+ `--update-config`、`-c`。デプロイの設定引数。JSON 文字列または JSON ファイルとして提供されます。JAON 文字列の形式は次のようになります。

  ```
  { \
    "componentName": { \ 
      "MERGE": {"config-key": "config-value"}, \
      "RESET": ["path/to/reset/"] \
    } \
  }
  ```

  `MERGE` および `RESET` は大文字と小文字を区別するため、大文字にする必要があります。
+ `--groupId`、`-g`。デプロイのターゲットとなるモノグループ。
+ `--merge`、`-m`。追加または更新するターゲットコンポーネントの名前とバージョン。コンポーネント情報は、`<component>=<version>` の形式で提供する必要があります。指定する追加コンポーネントごとに個別の引数を使用します。必要に応じて、`--runWith` 引数を指定して、コンポーネントを実行するための `posixUser`、`posixGroup`、および `windowsUser` 情報を提供します。
+ `--runWith`。汎用コンポーネントまたは Lambda コンポーネントを実行するための `posixUser`、`posixGroup`、および `windowsUser` 情報。`<component>:{posixUser|windowsUser}=<user>[:<=posixGroup>]` 形式でこの情報を提供する必要があります。たとえば、**HelloWorld:posixUser=ggc\$1user:ggc\$1group** や **HelloWorld:windowsUser=ggc\$1user** と指定することができます。指定する追加オプションごとに個別の引数を使用します。

  詳細については、「[コンポーネントを実行するユーザーを設定する](configure-greengrass-core-v2.md#configure-component-user)」を参照してください。
+ `--systemLimits`。コアデバイス上の汎用および非コンテナ型 Lambda コンポーネントのプロセスに適用されるシステムリソースの制限。各コンポーネントのプロセスが使用できる CPU および RAM の最大使用数を設定できます。シリアル化された JSON オブジェクトまたは JSON ファイルへのファイルパスを指定します。JSON オブジェクトは次の形式である必要があります。

  ```
  {  \
    "componentName": { \ 
      "cpus": cpuTimeLimit, \
      "memory": memoryLimitInKb \
    } \
  }
  ```

  各コンポーネントに対して、次のシステムリソース制限を設定できます。
  + `cpus` – <a name="system-resource-limits-cpu-definition-this"></a>このコンポーネントのプロセスがコアデバイスで使用できる CPU 時間の最大量。コアデバイスの合計 CPU 時間は、デバイスの CPU コア数と同じです。例えば、4 つの CPU コアを持つコアデバイスの場合は、この値を `2` に設定することで、このコンポーネントのプロセスを各 CPU コアの 50% の使用率に制限することができます。CPU コアが 1 つのデバイスの場合は、この値を `0.25` に設定することで、このコンポーネントのプロセスを CPU の 25% の使用率に制限することができます。この値を CPU コア数よりも大きい値に設定すると、AWS IoT Greengrass Core ソフトウェアは、コンポーネントの CPU 使用率に制限をかけません。
  + `memory` – <a name="system-resource-limits-memory-definition-this"></a>このコンポーネントのプロセスがコアデバイスで使用できる RAM の最大量 (キロバイト単位)。

  詳細については、「[コンポーネントのシステムリソース制限を設定する](configure-greengrass-core-v2.md#configure-component-system-resource-limits)」を参照してください。

  この機能は、[Greengrass nucleus コンポーネント](greengrass-nucleus-component.md)の v2.4.0 以降および Linux コアデバイスの Greengrass CLI に利用できます。AWS IoT Greengrass は、現在 Windows コアデバイスにこの機能をサポートしていません。
+ `--remove`。ローカルデプロイから削除するターゲットコンポーネントの名前。クラウドデプロイからマージされたコンポーネントを削除するには、ターゲットモノグループのグループ ID を次の形式で指定する必要があります。

------
#### [ Greengrass nucleus v2.4.0 and later ]

  ```
  --remove <component-name> --groupId <group-name>
  ```

------
#### [ Earlier than v2.4.0 ]

  ```
  --remove <component-name> --groupId thinggroup/<group-name>
  ```

------
+ `--failure-handling-policy`。デプロイが失敗したときに実行されるアクションを定義します。指定できるアクションは次の 2 つです。
  + `ROLLBACK` – 
  + `DO_NOTHING` – 

  この機能は [Greengrass nucleus](greengrass-nucleus-component.md) の v2.11.0 以降で使用できます。

**出力**:  
次の例は、このコマンドを実行したときに生成される出力を示しています。  

```
$ sudo greengrass-cli deployment create \
    --merge MyApp1=1.0.0 \
    --merge MyApp2=1.0.0 --runWith MyApp2:posixUser=ggc_user \
    --remove MyApp3 \
    --recipeDir recipes/ \ 
    --artifactDir artifacts/

Local deployment has been submitted! Deployment Id: 44d89f46-1a29-4044-ad89-5151213dfcbc
```

## キャンセル
<a name="deployment-cancel"></a>

指定されたデプロイをキャンセルします。

概要  

```
greengrass-cli deployment cancel
    -i <deployment-id>
```

引数  
`-i`。キャンセルするデプロイの一意の識別子。デプロイ ID は `create` コマンドの出力で返されます。

Output  
+ なし

## リスト
<a name="deployment-list"></a>

過去 10 回分のローカルデプロイのステータスを取得します。

**概要**  

```
greengrass-cli deployment list
```

**引数**:  
なし

**出力**:  
次の例は、このコマンドを実行したときに生成される出力を示しています。デプロイのステータスに応じて、出力には `IN_PROGRESS`、`SUCCEEDED`、または `FAILED` のいずれかのステータス値が表示されます。  

```
$ sudo greengrass-cli deployment list

44d89f46-1a29-4044-ad89-5151213dfcbc: SUCCEEDED
Created on: 6/27/23 11:05 AM
```

## ステータス
<a name="deployment-status"></a>

特定のデプロイのステータスを取得します。

**概要**  

```
greengrass-cli deployment status -i <deployment-id>
```

**引数**  
`-i`。 デプロイの ID。

**出力**:  
次の例は、このコマンドを実行したときに生成される出力を示しています。デプロイのステータスに応じて、出力には `IN_PROGRESS`、`SUCCEEDED`、または `FAILED` のいずれかのステータス値が表示されます。  

```
$ sudo greengrass-cli deployment status -i 44d89f46-1a29-4044-ad89-5151213dfcbc

44d89f46-1a29-4044-ad89-5151213dfcbc: FAILED
Created on: 6/27/23 11:05 AM
Detailed Status: <Detailed deployment status>
Deployment Error Stack: List of error codes
Deployment Error Types: List of error types
Failure Cause: Cause
```