

# AWS IoT Greengrass V2使用 的 示例AWS CLI
<a name="cli_greengrassv2_code_examples"></a>

以下代码示例演示如何通过将 AWS Command Line Interface与 AWS IoT Greengrass V2 结合使用，来执行操作和实现常见场景。

*操作是大型程序的代码摘录*，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `associate-service-role-to-account`
<a name="greengrassv2_AssociateServiceRoleToAccount_cli_topic"></a>

以下代码示例演示了如何使用 `associate-service-role-to-account`。

**AWS CLI**  
**将 Greengrass 服务角色关联到 AWS 账户**  
以下 `associate-service-role-to-account` 示例将服务角色与您的 AWS 账户的 AWS IoT Greengrass 相关联。  

```
aws greengrassv2 associate-service-role-to-account \
    --role-arn arn:aws:iam::123456789012:role/service-role/Greengrass_ServiceRole
```
输出：  

```
{
    "associatedAt": "2022-01-19T19:21:53Z"
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的 [Greengrass 服务角色](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-service-role.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [AssociateServiceRoleToAccount](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/associate-service-role-to-account.html)。

### `batch-associate-client-device-with-core-device`
<a name="greengrassv2_BatchAssociateClientDeviceWithCoreDevice_cli_topic"></a>

以下代码示例演示了如何使用 `batch-associate-client-device-with-core-device`。

**AWS CLI**  
**将客户端设备与核心设备相关联**  
以下 `batch-associate-client-device-with-core-device` 示例将两个客户端设备与核心设备相关联。  

```
aws greengrassv2 batch-associate-client-device-with-core-device \
  --core-device-thing-name MyGreengrassCore \
  --entries thingName=MyClientDevice1 thingName=MyClientDevice2
```
输出：  

```
{
    "errorEntries": []
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[与本地 IoT 设备交互](https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [BatchAssociateClientDeviceWithCoreDevice](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/batch-associate-client-device-with-core-device.html)。

### `batch-disassociate-client-device-from-core-device`
<a name="greengrassv2_BatchDisassociateClientDeviceFromCoreDevice_cli_topic"></a>

以下代码示例演示了如何使用 `batch-disassociate-client-device-from-core-device`。

**AWS CLI**  
**取消客户端设备与核心设备的关联**  
以下 `batch-disassociate-client-device-from-core-device` 示例取消两个客户端设备与一个核心设备的关联。  

```
aws greengrassv2 batch-disassociate-client-device-from-core-device \
  --core-device-thing-name MyGreengrassCore \
  --entries thingName=MyClientDevice1 thingName=MyClientDevice2
```
输出：  

```
{
    "errorEntries": []
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[与本地 IoT 设备交互](https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [BatchDisassociateClientDeviceFromCoreDevice](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/batch-disassociate-client-device-from-core-device.html)。

### `cancel-deployment`
<a name="greengrassv2_CancelDeployment_cli_topic"></a>

以下代码示例演示了如何使用 `cancel-deployment`。

**AWS CLI**  
**取消部署**  
以下 `cancel-deployment` 示例停止对事物组的持续部署。  

```
aws greengrassv2 cancel-deployment \
    --deployment-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```
输出：  

```
{
    "message": "SUCCESS"
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[取消部署](https://docs.aws.amazon.com/greengrass/v2/developerguide/cancel-deployments.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [CancelDeployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/cancel-deployment.html)。

### `create-component-version`
<a name="greengrassv2_CreateComponentVersion_cli_topic"></a>

以下代码示例演示了如何使用 `create-component-version`。

**AWS CLI**  
**示例 1：根据配方创建组件版本**  
以下 `create-component-version` 示例根据配方文件创建 Hello World 组件的一个版本。  

```
aws greengrassv2 create-component-version \
    --inline-recipe fileb://com.example.HelloWorld-1.0.0.json
```
 的内容`com.example.HelloWorld-1.0.0.json`：  

```
{
    "RecipeFormatVersion": "2020-01-25",
    "ComponentName": "com.example.HelloWorld",
    "ComponentVersion": "1.0.0",
    "ComponentDescription": "My first AWS IoT Greengrass component.",
    "ComponentPublisher": "Amazon",
    "ComponentConfiguration": {
        "DefaultConfiguration": {
            "Message": "world"
        }
    },
    "Manifests": [
        {
            "Platform": {
                "os": "linux"
            },
            "Lifecycle": {
                "Run": "echo 'Hello {configuration:/Message}'"
            }
        }
    ]
}
```
输出：  

```
{
    "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0",
    "componentName": "com.example.HelloWorld",
    "componentVersion": "1.0.0",
    "creationTimestamp": "2021-01-07T16:24:33.650000-08:00",
    "status": {
        "componentState": "REQUESTED",
        "message": "NONE",
        "errors": {}
    }
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[创建自定义组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-components.html)和[上传要部署的组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/upload-components.html)。  
**示例 2：通过 AWS Lambda 函数创建组件版本**  
以下 `create-component-version` 示例通过 AWS Lambda 函数创建 Hello World 组件的一个版本。  

```
aws greengrassv2 create-component-version \
    --cli-input-json file://lambda-function-component.json
```
 的内容`lambda-function-component.json`：  

```
{
    "lambdaFunction": {
        "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:HelloWorldPythonLambda:1",
        "componentName": "com.example.HelloWorld",
        "componentVersion": "1.0.0",
        "componentLambdaParameters": {
            "eventSources": [
                {
                    "topic": "hello/world/+",
                    "type": "IOT_CORE"
                }
            ]
        }
    }
}
```
输出：  

```
{
    "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0",
    "componentName": "com.example.HelloWorld",
    "componentVersion": "1.0.0",
    "creationTimestamp": "2021-01-07T17:05:27.347000-08:00",
    "status": {
        "componentState": "REQUESTED",
        "message": "NONE",
        "errors": {}
    }
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[运行 AWS Lambda 函数](https://docs.aws.amazon.com/greengrass/v2/developerguide/run-lambda-functions.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [CreateComponentVersion](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/create-component-version.html)。

### `create-deployment`
<a name="greengrassv2_CreateDeployment_cli_topic"></a>

以下代码示例演示了如何使用 `create-deployment`。

**AWS CLI**  
**示例 1：创建部署**  
以下 `create-deployment` 示例将 AWS IoT Greengrass 命令行界面部署到核心设备。  

```
aws greengrassv2 create-deployment \
    --cli-input-json file://cli-deployment.json
```
 的内容`cli-deployment.json`：  

```
{
    "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
    "deploymentName": "Deployment for MyGreengrassCore",
    "components": {
        "aws.greengrass.Cli": {
            "componentVersion": "2.0.3"
        }
    },
    "deploymentPolicies": {
        "failureHandlingPolicy": "DO_NOTHING",
        "componentUpdatePolicy": {
            "timeoutInSeconds": 60,
            "action": "NOTIFY_COMPONENTS"
        },
        "configurationValidationPolicy": {
            "timeoutInSeconds": 60
        }
    },
    "iotJobConfiguration": {}
}
```
输出：  

```
{
    "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[创建部署](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html)。  
**示例 2：创建更新组件配置的部署**  
以下 `create-deployment` 示例将 AWS IoT Greengrass 核心组件部署到一组核心设备。此部署对核心组件应用以下配置更新：  
将目标设备的代理设置重置为其默认的无代理设置。将目标设备的 MQTT 设置重置为其默认值。设置核心的 JVM 的 JVM 选项。设置核心的日志记录级别。  

```
aws greengrassv2 create-deployment \
    --cli-input-json file://nucleus-deployment.json
```
 的内容`nucleus-deployment.json`：  

```
{
    "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
    "deploymentName": "Deployment for MyGreengrassCoreGroup",
    "components": {
        "aws.greengrass.Nucleus": {
            "componentVersion": "2.0.3",
            "configurationUpdate": {
                "reset": [
                    "/networkProxy",
                    "/mqtt"
                ],
                "merge": "{\"jvmOptions\":\"-Xmx64m\",\"logging\":{\"level\":\"WARN\"}}"
            }
        }
    },
    "deploymentPolicies": {
        "failureHandlingPolicy": "ROLLBACK",
        "componentUpdatePolicy": {
            "timeoutInSeconds": 60,
            "action": "NOTIFY_COMPONENTS"
        },
        "configurationValidationPolicy": {
            "timeoutInSeconds": 60
        }
    },
    "iotJobConfiguration": {}
}
```
输出：  

```
{
    "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[创建部署](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html)和[更新组件配置](https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [CreateDeployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/create-deployment.html)。

### `delete-component`
<a name="greengrassv2_DeleteComponent_cli_topic"></a>

以下代码示例演示了如何使用 `delete-component`。

**AWS CLI**  
**删除组件版本**  
以下 `delete-component` 示例删除 Hello World 组件。  

```
aws greengrassv2 delete-component \
    --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0
```
此命令不生成任何输出。  
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-components.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeleteComponent](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/delete-component.html)。

### `delete-core-device`
<a name="greengrassv2_DeleteCoreDevice_cli_topic"></a>

以下代码示例演示了如何使用 `delete-core-device`。

**AWS CLI**  
**删除核心设备**  
以下 `delete-core-device` 示例删除 AWS IoT Greengrass 核心设备。  

```
aws greengrassv2 delete-core-device \
    --core-device-thing-name MyGreengrassCore
```
此命令不生成任何输出。  
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[卸载 AWS IoT Greengrass 核心软件](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#uninstall-greengrass-core-v2)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeleteCoreDevice](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/delete-core-device.html)。

### `describe-component`
<a name="greengrassv2_DescribeComponent_cli_topic"></a>

以下代码示例演示了如何使用 `describe-component`。

**AWS CLI**  
**描述组件版本**  
以下 `describe-component` 示例描述 Hello World 组件。  

```
aws greengrassv2 describe-component \
    --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0
```
输出：  

```
{
    "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0",
    "componentName": "com.example.HelloWorld",
    "componentVersion": "1.0.0",
    "creationTimestamp": "2021-01-07T17:12:11.133000-08:00",
    "publisher": "Amazon",
    "description": "My first AWS IoT Greengrass component.",
    "status": {
        "componentState": "DEPLOYABLE",
        "message": "NONE",
        "errors": {}
    },
    "platforms": [
        {
            "attributes": {
                "os": "linux"
            }
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-components.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeComponent](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/describe-component.html)。

### `disassociate-service-role-from-account`
<a name="greengrassv2_DisassociateServiceRoleFromAccount_cli_topic"></a>

以下代码示例演示了如何使用 `disassociate-service-role-from-account`。

**AWS CLI**  
**取消 Greengrass 服务角色与 AWS 账户的关联**  
以下 `disassociate-service-role-from-account` 示例取消 Greengrass 服务角色与您的 AWS 账户的 AWS IoT Greengrass 的关联。  

```
aws greengrassv2 disassociate-service-role-from-account
```
输出：  

```
{
    "disassociatedAt": "2022-01-19T19:26:09Z"
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的 [Greengrass 服务角色](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-service-role.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DisassociateServiceRoleFromAccount](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/disassociate-service-role-from-account.html)。

### `get-component-version-artifact`
<a name="greengrassv2_GetComponentVersionArtifact_cli_topic"></a>

以下代码示例演示了如何使用 `get-component-version-artifact`。

**AWS CLI**  
**获取用于下载组件构件的 URL**  
以下 `get-component-version-artifact` 示例获取用于下载本地调试控制台组件的 JAR 文件的 URL。  

```
aws greengrassv2 get-component-version-artifact \
    --arn arn:aws:greengrass:us-west-2:aws:components:aws.greengrass.LocalDebugConsole:versions:2.0.3 \
    --artifact-name "Uvt6ZEzQ9TKiAuLbfXBX_APdY0TWks3uc46tHFHTzBM=/aws.greengrass.LocalDebugConsole.jar"
```
输出：  

```
{
    "preSignedUrl": "https://evergreencomponentmanageme-artifactbucket7410c9ef-g18n1iya8kwr.s3.us-west-2.amazonaws.com/public/aws.greengrass.LocalDebugConsole/2.0.3/s3/ggv2-component-releases-prod-pdx/EvergreenHttpDebugView/2ffc496ba41b39568968b22c582b4714a937193ee7687a45527238e696672521/aws.greengrass.LocalDebugConsole/aws.greengrass.LocalDebugConsole.jar?X-Amz-Security-Token=KwfLKSdEXAMPLE..."
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-components.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetComponentVersionArtifact](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/get-component-version-artifact.html)。

### `get-component`
<a name="greengrassv2_GetComponent_cli_topic"></a>

以下代码示例演示了如何使用 `get-component`。

**AWS CLI**  
**示例 1：以 YAML 格式（Linux、macOS 或 Unix）下载组件的配方**  
以下 `get-component` 示例将 Hello World 组件的配方下载到 YAML 格式的文件中。此命令执行以下操作：  
使用 `--output` 和 `--query` 参数控制该命令的输出。这些参数从命令的输出中提取配方 blob。有关控制输出的更多信息，请参阅《AWS 命令行界面用户指南》**中的[控制命令输出](https://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html)。使用 `base64` 实用工具。此实用工具将提取的 blob 解码为原始文本。由成功执行的 `get-component` 命令返回的 blob 是 base64 编码的文本。必须解码此 blob 才能获取原始文本。将解码后的文本保存到文件中。命令的最后一部分 (`> com.example.HelloWorld-1.0.0.json`) 将解码后的文本保存到文件中。  

```
aws greengrassv2 get-component \
    --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0 \
    --recipe-output-format YAML \
    --query recipe \
    --output text | base64 --decode > com.example.HelloWorld-1.0.0.json
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-components.html)。  
**示例 2：以 YAML 格式（Windows CMD）下载组件的配方**  
以下 `get-component` 示例将 Hello World 组件的配方下载到 YAML 格式的文件中。此命令使用 `certutil` 实用工具。  

```
aws greengrassv2 get-component ^
    --arn arn:aws:greengrass:us-west-2:675946970638:components:com.example.HelloWorld:versions:1.0.0 ^
    --recipe-output-format YAML ^
    --query recipe ^
    --output text > com.example.HelloWorld-1.0.0.yaml.b64

certutil -decode com.example.HelloWorld-1.0.0.yaml.b64 com.example.HelloWorld-1.0.0.yaml
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-components.html)。  
**示例 3：以 YAML 格式（Windows PowerShell）下载组件的配方**  
以下 `get-component` 示例将 Hello World 组件的配方下载到 YAML 格式的文件中。此命令使用 `certutil` 实用工具。  

```
aws greengrassv2 get-component `
    --arn arn:aws:greengrass:us-west-2:675946970638:components:com.example.HelloWorld:versions:1.0.0 `
    --recipe-output-format YAML `
    --query recipe `
    --output text > com.example.HelloWorld-1.0.0.yaml.b64

certutil -decode com.example.HelloWorld-1.0.0.yaml.b64 com.example.HelloWorld-1.0.0.yaml
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-components.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetComponent](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/get-component.html)。

### `get-connectivity-info`
<a name="greengrassv2_GetConnectivityInfo_cli_topic"></a>

以下代码示例演示了如何使用 `get-connectivity-info`。

**AWS CLI**  
**获取 Greengrass 核心设备的连接信息**  
以下 `get-connectivity-info` 示例获取 Greengrass 核心设备的连接信息。客户端设备使用此信息连接到在此核心设备上运行的 MQTT 代理。  

```
aws greengrassv2 get-connectivity-info \
    --thing-name MyGreengrassCore
```
输出：  

```
{
    "connectivityInfo": [
        {
            "id": "localIP_192.0.2.0",
            "hostAddress": "192.0.2.0",
            "portNumber": 8883
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理核心设备端点](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-core-device-endpoints.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetConnectivityInfo](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/get-connectivity-info.html)。

### `get-core-device`
<a name="greengrassv2_GetCoreDevice_cli_topic"></a>

以下代码示例演示了如何使用 `get-core-device`。

**AWS CLI**  
**获取核心设备**  
以下 `get-core-device` 示例获取有关 AWS IoT Greengrass 核心设备的信息。  

```
aws greengrassv2 get-core-device \
    --core-device-thing-name MyGreengrassCore
```
输出：  

```
{
    "coreDeviceThingName": "MyGreengrassCore",
    "coreVersion": "2.0.3",
    "platform": "linux",
    "architecture": "amd64",
    "status": "HEALTHY",
    "lastStatusUpdateTimestamp": "2021-01-08T04:57:58.838000-08:00",
    "tags": {}
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[检查核心设备状态](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-status.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetCoreDevice](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/get-core-device.html)。

### `get-deployment`
<a name="greengrassv2_GetDeployment_cli_topic"></a>

以下代码示例演示了如何使用 `get-deployment`。

**AWS CLI**  
**获取部署**  
以下 `get-deployment` 示例获取有关将 AWS IoT Greengrass 核心组件部署到一组核心设备的信息。  

```
aws greengrassv2 get-deployment \
    --deployment-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```
输出：  

```
{
    "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
    "revisionId": "14",
    "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "deploymentName": "Deployment for MyGreengrassCoreGroup",
    "deploymentStatus": "ACTIVE",
    "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "components": {
        "aws.greengrass.Nucleus": {
            "componentVersion": "2.0.3",
            "configurationUpdate": {
                "merge": "{\"jvmOptions\":\"-Xmx64m\",\"logging\":{\"level\":\"WARN\"}}",
                "reset": [
                    "/networkProxy",
                    "/mqtt"
                ]
            }
        }
    },
    "deploymentPolicies": {
        "failureHandlingPolicy": "ROLLBACK",
        "componentUpdatePolicy": {
            "timeoutInSeconds": 60,
            "action": "NOTIFY_COMPONENTS"
        },
        "configurationValidationPolicy": {
            "timeoutInSeconds": 60
        }
    },
    "iotJobConfiguration": {},
    "creationTimestamp": "2021-01-07T17:21:20.691000-08:00",
    "isLatestForTarget": false,
    "tags": {}
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[将组件部署至设备](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-deployments.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetDeployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/get-deployment.html)。

### `get-service-role-for-account`
<a name="greengrassv2_GetServiceRoleForAccount_cli_topic"></a>

以下代码示例演示了如何使用 `get-service-role-for-account`。

**AWS CLI**  
**获取 AWS 账户的 Greengrass 服务角色**  
以下 `get-service-role-for-account` 示例获取与您的 AWS 账户的 AWS IoT Greengrass 关联的服务角色。  

```
aws greengrassv2 get-service-role-for-account
```
输出：  

```
{
    "associatedAt": "2022-01-19T19:21:53Z",
    "roleArn": "arn:aws:iam::123456789012:role/service-role/Greengrass_ServiceRole"
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的 [Greengrass 服务角色](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-service-role.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetServiceRoleForAccount](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/get-service-role-for-account.html)。

### `list-client-devices-associated-with-core-device`
<a name="greengrassv2_ListClientDevicesAssociatedWithCoreDevice_cli_topic"></a>

以下代码示例演示了如何使用 `list-client-devices-associated-with-core-device`。

**AWS CLI**  
**列出与核心设备关联的客户端设备**  
以下 `list-client-devices-associated-with-core-device` 示例列出与核心设备关联的所有客户端设备。  

```
aws greengrassv2 list-client-devices-associated-with-core-device \
  --core-device-thing-name MyTestGreengrassCore
```
输出：  

```
{
    "associatedClientDevices": [
        {
            "thingName": "MyClientDevice2",
            "associationTimestamp": "2021-07-12T16:33:55.843000-07:00"
        },
        {
            "thingName": "MyClientDevice1",
            "associationTimestamp": "2021-07-12T16:33:55.843000-07:00"
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[与本地 IoT 设备交互](https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListClientDevicesAssociatedWithCoreDevice](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/list-client-devices-associated-with-core-device.html)。

### `list-component-versions`
<a name="greengrassv2_ListComponentVersions_cli_topic"></a>

以下代码示例演示了如何使用 `list-component-versions`。

**AWS CLI**  
**列出组件的版本**  
以下 `list-component-versions` 示例列出 Hello World 组件的所有版本。  

```
aws greengrassv2 list-component-versions \
    --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld
```
输出：  

```
{
    "componentVersions": [
        {
            "componentName": "com.example.HelloWorld",
            "componentVersion": "1.0.1",
            "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.1"
        },
        {
            "componentName": "com.example.HelloWorld",
            "componentVersion": "1.0.0",
            "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0"
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-components.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListComponentVersions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/list-component-versions.html)。

### `list-components`
<a name="greengrassv2_ListComponents_cli_topic"></a>

以下代码示例演示了如何使用 `list-components`。

**AWS CLI**  
**列出组件**  
以下 `list-components` 示例列出当前区域的 AWS 账户中定义的每个组件及其最新版本。  

```
aws greengrassv2 list-components
```
输出：  

```
{
    "components": [
        {
            "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld",
            "componentName": "com.example.HelloWorld",
            "latestVersion": {
                "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.1",
                "componentVersion": "1.0.1",
                "creationTimestamp": "2021-01-08T16:51:07.352000-08:00",
                "description": "My first AWS IoT Greengrass component.",
                "publisher": "Amazon",
                "platforms": [
                    {
                        "attributes": {
                            "os": "linux"
                        }
                    }
                ]
            }
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-components.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListComponents](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/list-components.html)。

### `list-core-devices`
<a name="greengrassv2_ListCoreDevices_cli_topic"></a>

以下代码示例演示了如何使用 `list-core-devices`。

**AWS CLI**  
**列出核心设备**  
以下 `list-core-devices` 示例列出了当前区域的 AWS 账户中的 AWS IoT Greengrass 核心设备。  

```
aws greengrassv2 list-core-devices
```
输出：  

```
{
    "coreDevices": [
        {
            "coreDeviceThingName": "MyGreengrassCore",
            "status": "HEALTHY",
            "lastStatusUpdateTimestamp": "2021-01-08T04:57:58.838000-08:00"
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[检查核心设备状态](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-status.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListCoreDevices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/list-core-devices.html)。

### `list-deployments`
<a name="greengrassv2_ListDeployments_cli_topic"></a>

以下代码示例演示了如何使用 `list-deployments`。

**AWS CLI**  
**列出部署**  
以下 `list-deployments` 示例列出了当前区域的 AWS 账户中定义的每个部署的最新修订版。  

```
aws greengrassv2 list-deployments
```
输出：  

```
{
    "deployments": [
        {
            "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
            "revisionId": "14",
            "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "deploymentName": "Deployment for MyGreengrassCoreGroup",
            "creationTimestamp": "2021-01-07T17:21:20.691000-08:00",
            "deploymentStatus": "ACTIVE",
            "isLatestForTarget": false
        },
        {
            "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
            "revisionId": "1",
            "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
            "deploymentName": "Deployment for MyGreengrassCore",
            "creationTimestamp": "2021-01-06T16:10:42.407000-08:00",
            "deploymentStatus": "COMPLETED",
            "isLatestForTarget": false
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[将组件部署至设备](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-deployments.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListDeployments](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/list-deployments.html)。

### `list-effective-deployments`
<a name="greengrassv2_ListEffectiveDeployments_cli_topic"></a>

以下代码示例演示了如何使用 `list-effective-deployments`。

**AWS CLI**  
**列出部署作业**  
以下 `list-effective-deployments` 示例列出了适用于 AWS IoT Greengrass 核心设备的部署。  

```
aws greengrassv2 list-effective-deployments \
    --core-device-thing-name MyGreengrassCore
```
输出：  

```
{
    "effectiveDeployments": [
        {
            "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "deploymentName": "Deployment for MyGreengrassCore",
            "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
            "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
            "coreDeviceExecutionStatus": "COMPLETED",
            "reason": "SUCCESSFUL",
            "creationTimestamp": "2021-01-06T16:10:42.442000-08:00",
            "modifiedTimestamp": "2021-01-08T17:21:27.830000-08:00"
        },
        {
            "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
            "deploymentName": "Deployment for MyGreengrassCoreGroup",
            "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE44444",
            "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE44444",
            "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
            "coreDeviceExecutionStatus": "SUCCEEDED",
            "reason": "SUCCESSFUL",
            "creationTimestamp": "2021-01-07T17:19:20.394000-08:00",
            "modifiedTimestamp": "2021-01-07T17:21:20.721000-08:00"
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[检查核心设备状态](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-status.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListEffectiveDeployments](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/list-effective-deployments.html)。

### `list-installed-components`
<a name="greengrassv2_ListInstalledComponents_cli_topic"></a>

以下代码示例演示了如何使用 `list-installed-components`。

**AWS CLI**  
**列出安装在核心设备上的组件**  
以下 `list-installed-components` 示例列出了安装在 AWS IoT Greengrass 核心设备上的组件。  

```
aws greengrassv2 list-installed-components \
    --core-device-thing-name MyGreengrassCore
```
输出：  

```
{
    "installedComponents": [
        {
            "componentName": "aws.greengrass.Cli",
            "componentVersion": "2.0.3",
            "lifecycleState": "RUNNING",
            "isRoot": true
        },
        {
            "componentName": "aws.greengrass.Nucleus",
            "componentVersion": "2.0.3",
            "lifecycleState": "FINISHED",
            "isRoot": true
        }
    ]
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[检查核心设备状态](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-status.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListInstalledComponents](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/list-installed-components.html)。

### `list-tags-for-resource`
<a name="greengrassv2_ListTagsForResource_cli_topic"></a>

以下代码示例演示了如何使用 `list-tags-for-resource`。

**AWS CLI**  
**列出资源标签**  
以下 `list-tags-for-resource` 示例列出了 AWS IoT Greengrass 核心设备的所有标签。  

```
aws greengrassv2 list-tags-for-resource \
    --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore
```
输出：  

```
{
    "tags": {
        "Owner": "richard-roe"
    }
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[标记资源](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListTagsForResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/list-tags-for-resource.html)。

### `tag-resource`
<a name="greengrassv2_TagResource_cli_topic"></a>

以下代码示例演示了如何使用 `tag-resource`。

**AWS CLI**  
**将标签添加到资源中**  
以下 `tag-resource` 示例将所有者标签添加到 AWS IoT Greengrass 核心设备。您可以使用此标签根据核心设备的所有者来控制对核心设备的访问权限。  

```
aws greengrassv2 tag-resource \
    --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore \
    --tags Owner=richard-roe
```
此命令不生成任何输出。  
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[标记资源](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [TagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/tag-resource.html)。

### `untag-resource`
<a name="greengrassv2_UntagResource_cli_topic"></a>

以下代码示例演示了如何使用 `untag-resource`。

**AWS CLI**  
**从资源中删除标签**  
以下 `untag-resource` 示例从 AWS IoT Greengrass 核心设备中删除所有者标签。  

```
aws iotsitewise untag-resource \
    --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore \
    --tag-keys Owner
```
此命令不生成任何输出。  
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[标记资源](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [UntagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/untag-resource.html)。

### `update-connectivity-info`
<a name="greengrassv2_UpdateConnectivityInfo_cli_topic"></a>

以下代码示例演示了如何使用 `update-connectivity-info`。

**AWS CLI**  
**更新 Greengrass 核心设备的连接信息**  
以下 `update-connectivity-info` 示例获取 Greengrass 核心设备的连接信息。客户端设备使用此信息连接到在此核心设备上运行的 MQTT 代理。  

```
aws greengrassv2 update-connectivity-info \
    --thing-name MyGreengrassCore \
    --cli-input-json file://core-device-connectivity-info.json
```
 的内容`core-device-connectivity-info.json`：  

```
{
    "connectivityInfo": [
        {
            "hostAddress": "192.0.2.0",
            "portNumber": 8883,
            "id": "localIP_192.0.2.0"
        }
    ]
}
```
输出：  

```
{
    "version": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
```
有关更多信息，请参阅《AWS IoT Greengrass V2 开发人员指南》**中的[管理核心设备端点](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-core-device-endpoints.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [UpdateConnectivityInfo](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrassv2/update-connectivity-info.html)。