上传要部署到核心设备的组件 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

上传要部署到核心设备的组件

完成组件的版本后,您可以将组件上传到Amazon IoT Greengrass中的Amazon Web Services 云. 然后,您可以将组件部署到其他核心设备。

在上传组件时,需要执行以下操作:

  1. 将组件构件上传到 S3 存储桶。

  2. 将每个工件的 Amazon S3 URI 添加到组件配方中。

  3. 在中创建组件版本Amazon IoT Greengrass从组件配方。

注意

您上传的每个组件版本都必须是唯一的。上传组件后,无法编辑组件版本。

上传组件 (Amazon CLI)

使用以下过程来上传带有Amazon CLI. 您可以在开发计算机上或Amazon IoT Greengrass核心设备。

要上载组件 (Amazon CLI)

  1. 如果组件使用Amazon IoT Greengrass服务,则必须更改组件的版本。在文本编辑器中打开配方,增加版本,并保存文件。选择一个反映您对组件所做更改的新版本。

    注意

    Amazon IoT Greengrass使用组件的语义版本。语义版本遵循主要.次要.patch数字系统。例如,版本1.0.0表示组件的第一个主要版本。有关更多信息,请参阅 。语义版本规范.

  2. 如果您的组件有构件,请执行以下操作:

    1. 将组件的构件上传到您的 S3 存储桶Amazon Web Services 账户.

      提示

      我们建议您在 S3 存储桶中构件的路径中包括组件名和版本。此命名方案可帮助您维护早期版本的组件所使用的对象,以便您可以继续支持以前的组件版本。

      运行以下命令以将构件文件上传到 S3 存储桶。Replace文档示例存储桶将替换为存储桶的名称,然后将工具/com.示例. 你好世界 /1.0.0/工艺品 .py替换为工件文件的路径。

      aws s3 cp artifacts/com.example.HelloWorld/1.0.0/artifact.py s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.HelloWorld/1.0.0/artifact.py
      重要

      默认情况下,核心设备角色不允许访问 S3 存储桶。如果这是您第一次使用此 S3 存储桶,则必须向角色添加权限,以允许核心设备从此 S3 存储桶检索组件对象。有关更多信息,请参阅允许访问 S3 存储桶

    2. 添加名为Artifacts添加到组件配方(如果它不存在)。这些区域有:Artifacts列表显示在每个清单中,它定义了组件在其支持的每个平台上的要求(或组件对所有平台的默认要求)。

    3. 将每个对象添加到对象列表中,或更新现有对象的 URI。Amazon S3 URI 由存储桶名称和存储桶中工件对象的路径组成。您的构件的 Amazon S3 URI 应类似于以下示例。

      s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.HelloWorld/1.0.0/artifact.py

    完成这些步骤后,您的配方应具有Artifacts列表,看上去与下类似。

    JSON
    { ... "Manifests": [ { "Lifecycle": { ... } "Artifacts": [ { "URI": "s3://DOC-EXAMPLE-BUCKET/artifacts/MyGreengrassComponent/1.0.0/artifact.py", "Unarchive": "NONE" } ] } ] }
    注意

    可以添加"Unarchive": "ZIP"选项,以配置Amazon IoT Greengrass部署组件时解压缩工件的核心软件。

    YAML
    ... Manifests: - Lifecycle: ... Artifacts: - URI: s3://DOC-EXAMPLE-BUCKET/artifacts/MyGreengrassComponent/1.0.0/artifact.py Unarchive: NONE
    注意

    您可以使用Unarchive: ZIP选项配置Amazon IoT Greengrass部署组件时解压缩 ZIP 工件的核心软件。有关组件中如何使用 ZIP 构件的更多信息,请参阅对象:解压缩路径配方变量.

    有关配方的更多信息,请参阅Amazon IoT Greengrass组件配方参考

  3. 使用Amazon IoT Greengrass控制台从配方文件创建组件。

    运行以下命令以从处方文件创建组件。此命令创建组件并将其发布为私有Amazon IoT Greengrass的组件Amazon Web Services 账户. Replace路径/到/接入文件与配方文件的路径。

    aws greengrassv2 create-component-version \ --inline-recipe fileb://path/to/recipeFile

    将复制arn来检查下一步中组件的状态。

    注意

    Amazon IoT Greengrass在创建组件时计算每个构件的摘要。这意味着在创建组件后,您无法修改 S3 存储桶中的工件文件。如果这样做,包含此组件的部署将失败,因为文件摘要不匹配。如果修改构件文件,必须创建新组件版本。

  4. 中的每个组件Amazon IoT Greengrass服务具有状态。运行以下命令以确认您在此过程中上载的组件版本的状态。Replace来个例子。赫洛世界1.0.0与要查询的组件版本。替换arn与上一步中的 ARN 一起运行。

    aws greengrassv2 describe-component \ --arn "arn:aws:greengrass:region:account-id:components:com.example.HelloWorld:versions:1.0.0"

    此操作将返回包含组件元数据的响应。元数据包含status对象,其中包含组件状态和任何错误(如果适用)。

    当组件状态为DEPLOYABLE,可以将组件部署到设备。有关更多信息,请参阅部署Amazon IoT Greengrass组件到设备