Greengrass 开发套件 CLI 配置文件 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Greengrass 开发套件 CLI 配置文件

这些区域有:Amazon IoT Greengrass开发工具包命令行界面 (GDK CLI) 从名为的配置文件中读取gdk-config.json来构建和发布组件。此配置文件必须存在于组件存储库的根目录中。您可以使用 GDK CLIinit 命令用此配置文件初始化组件存储库。

GDK CLI 配置文件格式

为组件定义 GDK CLI 配置文件时,您可以使用 JSON 格式指定以下信息。

gdk_version

与此组件兼容的 GDK CLI 的最低版本。

component

此组件的配置。

componentName
author

组件的作者或发布者。

version

组件版本。指定下列项之一:

  • NEXT_PATCH— 选择此选项后,GDK CLI 会在您发布组件时设置版本。GDK CLI 查询Amazon IoT Greengrass服务以标识组件的最新发布版本。然后,它将版本设置为该版本之后的下一个修补程序版本。如果您之前没有发布该组件,GDK CLI 将使用版本1.0.0.

    如果选择此选项,则无法使用Greengrass CLI将组件部署到本地开发计算机上并测试该组件,该计算机运行Amazon IoT Greengrass核心软件。要启用本地部署,必须改为指定语义版本。

  • 语义版本,例如1.0.0. 语义版本使用重大的.未成年人.补丁编号系统。有关更多信息,请参阅 。语义版本规范.

    如果在要部署和测试组件的 Greengrass 核心设备上开发组件,请选择此选项。必须使用特定版本构建组件才能使用Greengrass CLI.

build

用于将此组件的源代码构建为工件的配置。此对象包含以下信息:

build_system

要使用的构建系统。从以下选项中进行选择:

  • zip— 将组件的文件夹打包到 ZIP 文件中,以定义为组件的唯一工件。为以下类型的组件选择此选项:

    • 使用解释式编程语言(如 Python 或 JavaScript)的组件。

    • 打包代码以外的文件的组件,例如机器学习模型或其他资源。

    GDK CLI 将组件的文件夹压缩到与组件文件夹同名的 zip 文件中。例如,如果组件文件夹的名称为HelloWorld,GDK CLI 会创建一个名为HelloWorld.zip.

    注意

    如果在 Windows 设备上使用 GDK CLI 1.0.0 版,组件文件夹和 zip 文件名必须仅包含小写字母。

    当 GDK CLI 将组件的文件夹压缩到 zip 文件中时,它会跳过以下文件:

    • gdk-config.json 文件

    • 食谱文件 (recipe.json要么recipe.yaml

    • 构建文件夹,例如greengrass-build

  • maven— 运行mvn clean package命令将组件的源代码构建成工件。为使用的组件选择此选项玛文,例如 Java 组件。

    在 Windows 设备上,此功能适用于 GDK CLI v1.1.0 及更高版本。

  • gradle— 运行gradle build命令将组件的源代码构建成工件。为使用的组件选择此选项Gradle.

    此功能适用于 GDK CLI v1.1.0 及更高版本。

  • custom— 运行自定义命令以将组件的源代码构建到配方和工件中。在中指定自定义命令custom_build_command参数。

custom_build_command

(可选)要为自定义构建系统运行的自定义构建命令。如果指定此参数,则必须指定此参数custom为了build_system.

重要

此命令必须在组件文件夹中的以下文件夹中创建配方和工件。GDK CLI 会在运行组件构建命令.

  • 配方文件夹:greengrass-build/recipes

  • Artifactsgreengrass-build/artifacts/componentName/componentVersion

    ReplaceComponentName使用组件名称,然后替换ComponentVersion使用组件版本或NEXT_PATCH.

您可以指定单个字符串或字符串列表,其中每个字符串均为命令中的一个单词。例如,要为 C++ 组件运行自定义构建命令,可以指定cmake --build build --config Release要么["cmake", "--build", "build", "--config", "Release"].

要查看自定义构建系统的示例,请参阅aws.greengrass.labs.LocalWebServer community component位于 GitHub 上.

publish

用于将此组件发布到Amazon IoT Greengrass服务。

如果您使用 GDK CLI v1.1.0 或更高版本,则可以指定--bucket参数,以指定 GDK CLI 在其中上传组件的工件的 S3 存储桶。如果您不指定此参数,GDK CLI 会上传到其名称为的 S3 存储桶bucketPrefix-region-accountId,其中BucketPrefix领域是你在中指定的值gdk-config.json, 和accountId是你的Amazon Web Services 账户ID。如果存储桶不存在,GDK CLI 会创建存储桶。

此对象包含以下信息:

bucket

用于托管组件项目的 S3 存储桶名称。

region

这些区域有:Amazon Web Services 区域GDK CLI 在哪里发布此组件。

GDK CLI 配置文件示例

您可以参考以下 GDK CLI 配置文件示例来帮助您配置 Greengrass 组件环境。

你好世界(Python)

以下 GDK CLI 配置文件支持运行 Python 脚本的 Hello World 组件。此配置文件使用zip构建系统以将组件的 Python 脚本打包到一个 ZIP 文件中,GDK CLI 将其作为工件上传。

{ "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2" } } }, "gdk_version": "1.0.0" }

你好世界(Java)

以下 GDK CLI 配置文件支持运行 Java 应用程序的 Hello World 组件。此配置文件使用maven构建系统以将组件的 Java 源代码打包到 GDK CLI 作为工件上传的 JAR 文件中。

{ "component": { "com.example.JavaHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "maven" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2" } } }, "gdk_version": "1.0.0" }

社区组件

中的几个社区组件Greengrass 软件目录使用 GDK CLI。您可以在这些组件的存储库中探索 GDK CLI 配置文件。

查看社区组件的 GDK CLI 配置文件

  1. 运行以下命令列出使用 GDK CLI 的社区组件。

    gdk component list --repository

    响应列出了 GitHub 使用 GDK CLI 的每个社区组件的存储库。每个存储库都存在于awslabs组织。

    [2022-02-22 17:27:31] INFO - Listing all the available component repositories from Greengrass Software Catalog. [2022-02-22 17:27:31] INFO - Found '6' component repositories to display. 1. aws-greengrass-labs-database-influxdb 2. aws-greengrass-labs-telemetry-influxdbpublisher 3. aws-greengrass-labs-dashboard-grafana 4. aws-greengrass-labs-dashboard-influxdb-grafana 5. aws-greengrass-labs-local-web-server 6. aws-greengrass-labs-lookoutvision-gstreamer
  2. 打开社区组件的 GitHub 存储库位于以下 URL。Replace社区组件名称使用上一步中的社区组件的名称。

    https://github.com/awslabs/community-component-name