管理本地部署和组件 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理本地部署和组件

注意

此功能适用于 v2.6.0 及更高版本的Greengrass 核组件.

使用 Greengrass CLI IPC 服务管理核心设备上的本地部署和 Greengrass 组件。

要使用这些 IPC 操作,请包括 2.6.0 或更高版本的Greengrass CLI 组件作为自定义组件中的依赖项。然后,您可以在自定义组件中使用 IPC 操作来执行以下操作:

  • 创建本地部署以修改和配置核心设备上的 Greengrass 组件。

  • 重新启动并停止核心设备上的 Greengrass 组件。

  • 生成一个可用于登录的密码本地调试控制台.

最低 SDK 版本

下表列出了的最低版本Amazon IoT Device SDK您必须使用它来与 Greengrass CLI IPC 服务进行交互。

Authorization

要在自定义组件中使用 Greengrass CLI IPC 服务,必须定义允许您的组件管理本地部署和组件的授权策略。有关如何定义授权策略的信息,请参阅授权组件执行 IPC 操作.

Greengrass CLI 的授权策略具有以下属性。

IPC 服务标识符: aws.greengrass.Cli

运算 描述 资源

aws.greengrass#CreateLocalDeployment

允许组件在核心设备上创建本地部署。

*

aws.greengrass#ListLocalDeployments

允许组件列出核心设备上的本地部署。

*

aws.greengrass#GetLocalDeploymentStatus

允许组件获取核心设备上本地部署的状态。

本地部署 ID,或*以允许访问所有本地部署。

aws.greengrass#ListComponents

允许组件列出核心设备上的组件。

*

aws.greengrass#GetComponentDetails

允许组件获取有关核心设备上某个组件的详细信息。

组件名称,例如com.example.HelloWorld,或*以允许访问所有组件。

aws.greengrass#RestartComponent

允许组件在核心设备上重新启动组件。

组件名称,例如com.example.HelloWorld,或*以允许访问所有组件。

aws.greengrass#StopComponent

允许组件停止核心设备上的组件。

组件名称,例如com.example.HelloWorld,或*以允许访问所有组件。

aws.greengrass#CreateDebugPassword

允许组件生成用于登录的密码本地调试控制台组件.

*

例 示例授权策略

以下示例授权策略允许组件创建本地部署、查看所有本地部署和组件,以及重新启动和停止名为的组件com.example.HelloWorld.

{ "accessControl": { "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:1": { "policyDescription": "Allows access to create local deployments and view deployments and components.", "operations": [ "aws.greengrass#CreateLocalDeployment", "aws.greengrass#ListLocalDeployments", "aws.greengrass#GetLocalDeploymentStatus", "aws.greengrass#ListComponents", "aws.greengrass#GetComponentDetails" ], "resources": [ "*" ] } }, "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:2": { "policyDescription": "Allows access to restart and stop the Hello World component.", "operations": [ "aws.greengrass#RestartComponent", "aws.greengrass#StopComponent" ], "resources": [ "com.example.HelloWorld" ] } } } }

CreateLocalDeployment

使用指定的组件配方、构件和运行时参数创建或更新本地部署。

此操作提供的功能与部署创建命令在 Greengrass CLI 中。

请求

此操作的请求具有以下参数:

recipeDirectoryPathPython:recipe_directory_path)

(可选)包含组件配方文件的文件夹的绝对路径。

artifactDirectoryPathPython:artifact_directory_path)

(可选)包含要包含到部署中的构件文件的文件夹的绝对路径。构件文件夹必须包含以下文件夹结构:

/path/to/artifact/folder/component-name/component-version/artifacts
rootComponentVersionsToAddPython:root_component_versions_to_add)

(可选)要在核心设备上安装的组件版本。对象,ComponentToVersionMap,是一个包含以下键/值对的映射:

key

组件名称。

value

组件版本。

rootComponentsToRemovePython:root_components_to_remove)

(可选)要从核心设备上卸载的组件。指定一个列表,其中每个条目都是组件的名称。

componentToConfigurationPython:component_to_configuration)

(可选)部署中每个组件的配置更新。对象,ComponentToConfiguration,是一个包含以下键/值对的映射:

key

组件名称。

value

组件的配置更新 JSON 对象。JSON 对象必须具有以下格式。

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

有关配置更新的详细信息,请参阅Update component configurations.

componentToRunWithInfoPython:component_to_run_with_info)

(可选)部署中每个组件的运行时配置。此配置包括拥有每个组件进程的系统用户以及应用于每个组件的系统限制。对象,ComponentToRunWithInfo,是一个包含以下键/值对的映射:

key

组件名称。

value

组件的运行时配置。如果您省略了运行时配置参数,Amazon IoT Greengrass核心软件使用您在上配置的默认值Greengrass 核. 对象,RunWithInfo,包含以下信息:

posixUserPython:posix_user)

(可选)用于在 Linux 核心设备上运行此组件的 POSIX 系统用户和(可选)群组。每个 Linux 核心设备上都必须存在用户和组(如果已指定)。指定用户和群组,用冒号分隔 (:)采用以下格式:user:group. 该组是可选的。如果不指定群组,Amazon IoT Greengrass核心软件为用户使用主组。有关更多信息,请参阅配置运行组件的用户

windowsUserPython:windows_user)

(可选)用于在 Windows 核心设备上运行此组件的 Windows 用户。用户必须存在于每台 Windows 核心设备上,并且其名称和密码必须存储在 LocalSystem 账户的证书管理器实例。有关更多信息,请参阅配置运行组件的用户

systemResourceLimitsPython:system_resource_limits)

(可选)应用于此组件进程的系统资源限制。您可以将系统资源限制应用于通用和非容器化的 Lambda 组件。有关更多信息,请参阅为组件配置系统资源限制

Amazon IoT Greengrass目前在 Windows 核心设备上不支持此功能。

对象,SystemResourceLimits,包含以下信息:

cpus

(可选)此组件的进程可以在核心设备上使用的最大 CPU 时间。核心设备的总 CPU 时间等于该设备的 CPU 内核数。例如,在具有 4 个 CPU 内核的核心设备上,您可以将此值设置为2将此组件的进程限制为每个 CPU 内核的使用率为 50%。在具有 1 个 CPU 内核的设备上,可以将此值设置为0.25将此组件的进程限制在 25% 的 CPU 使用率以内。如果您将此值设置为大于 CPU 内核数的数字,Amazon IoT Greengrass核心软件不限制组件的 CPU 使用率。

memory

(可选)此组件的进程可以在核心设备上使用的最大内存量(以千字节为单位)。

groupNamePython:group_name)

(可选)此部署要作为目标的事物组的名称。

响应

此操作的响应包含以下信息:

deploymentIdPython:deployment_id)

请求创建的本地部署的 ID。

ListLocalDeployments

获取最近 10 次本地部署的状态。

此操作提供的功能与部署列表命令在 Greengrass CLI 中。

请求

此操作的请求没有任何参数。

响应

此操作的响应包含以下信息:

localDeploymentsPython:local_deployments)

本地部署列表。此列表中的每个对象都是LocalDeployment对象,其中包含以下信息:

deploymentIdPython:deployment_id)

本地部署的 ID。

status

本地部署的状态。这个枚枚枚枚枚枚枚数DeploymentStatus,具有以下值:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

GetLocalDeploymentStatus

获取本地部署的状态。

此操作提供的功能与部署状态命令在 Greengrass CLI 中。

请求

此操作的请求具有以下参数:

deploymentIdPython:deployment_id)

要获取的本地部署的 ID。

响应

此操作的响应包含以下信息:

deployment

本地部署。对象,LocalDeployment,包含以下信息:

deploymentIdPython:deployment_id)

本地部署的 ID。

status

本地部署的状态。这个枚枚枚枚枚枚枚数DeploymentStatus,具有以下值:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

ListComponents

获取核心设备上每个根组件的名称、版本、状态和配置。一个root 组件是您在部署中指定的组件。此响应不包括作为其他组件依赖项安装的组件。

此操作提供的功能与组件列表命令在 Greengrass CLI 中。

请求

此操作的请求没有任何参数。

响应

此操作的响应包含以下信息:

components

核心设备上的根组件列表。此列表中的每个对象都是ComponentDetails对象,其中包含以下信息:

componentNamePython:component_name)

组件名称。

version

组件版本。

state

组件状态。此状态可以是以下之一:

  • RUNNING

  • ERRORED

configuration

组件的配置作为 JSON 对象。

GetComponentDetails

获取核心设备上组件的版本、状态和配置。

此操作提供的功能与组件详细信息命令在 Greengrass CLI 中。

请求

此操作的请求具有以下参数:

componentNamePython:component_name)

要获取的组件名称。

响应

此操作的响应包含以下信息:

componentDetailsPython:component_details)

组件的详细信息。对象,ComponentDetails,包含以下信息:

componentNamePython:component_name)

组件名称。

version

组件版本。

state

组件状态。此状态可以是以下之一:

  • RUNNING

  • ERRORED

configuration

组件的配置作为 JSON 对象。

RestartComponent

在核心设备上重新启动组件。

注意

虽然你可以重新启动任何组件,但我们建议你只重新启动通用组件.

此操作提供的功能与组件重新启动命令在 Greengrass CLI 中。

请求

此操作的请求具有以下参数:

componentNamePython:component_name)

组件名称。

响应

此操作的响应包含以下信息:

restartStatusPython:restart_status)

重新启动请求状态。请求的状态可以是以下之一:

  • SUCCEEDED

  • FAILED

message

一条消息,说明如果请求失败,组件为何无法重新启动。

StopComponent

停止核心设备上组件的进程。

注意

虽然你可以停止任何组件,但我们建议你只停止通用组件.

此操作提供的功能与组件停止命令在 Greengrass CLI 中。

请求

此操作的请求具有以下参数:

componentNamePython:component_name)

组件名称。

响应

此操作的响应包含以下信息:

stopStatusPython:stop_status)

停止请求的状态。请求的状态可以是以下之一:

  • SUCCEEDED

  • FAILED

message

一条消息,说明如果请求失败,组件为何无法停止。

CreateDebugPassword

生成一个随机密码,您可以使用该密码登录本地调试控制台组件. 密码在生成 8 小时后过期。

此操作提供的功能与get-debug-password 命令在 Greengrass CLI 中。

请求

此操作的请求没有任何参数。

响应

此操作的响应包含以下信息:

username

用于登录的用户名。

password

用于登录的密码。

passwordExpirationPython:password_expiration)

密码到期的时间。

certificateSHA256HashPython:certificate_sha256_hash)

启用 HTTPS 时本地调试控制台使用的自签名证书的 SHA-256 指纹。当您打开本地调试控制台时,使用此指纹来验证证书是否合法以及连接是否安全。

certificateSHA1HashPython:certificate_sha1_hash)

启用 HTTPS 时本地调试控制台使用的自签名证书的 SHA-1 指纹。当您打开本地调试控制台时,使用此指纹来验证证书是否合法以及连接是否安全。