Amazon IoT Greengrass开发套件命令行界面 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon IoT Greengrass开发套件命令行界面

Amazon IoT Greengrass开发套件命令行界面 (GDK CLI) 提供的功能可帮助您开发自定义 Gre engrass 组件。您可以使用 GDK CLI 来创建、构建和发布自定义组件。使用 GDK CLI 创建组件存储库时,可以从 Gre engrass 软件目录中的模板或社区组件开始。然后,您可以选择将文件打包为 ZIP 存档、使用 Maven 或 Gradle 构建脚本或运行自定义构建命令的构建系统。创建组件后,您可以使用 GDK CLI 将其发布到Amazon IoT Greengrass服务,这样您就可以使用Amazon IoT Greengrass控制台或 API 将该组件部署到您的 Greengrass 核心设备上。

在没有 GDK CLI 的情况下开发 Greengrass 组件时,每次创建组件的新版本时,都必须更新组件配方文件中的版本和工件 URI。当您使用 GDK CLI 时,它可以在您每次发布组件的新版本时自动为您更新版本和构件 URI。

GDK CLI 是开源的,可在上使用。 GitHub您可以自定义和扩展 GDK CLI 以满足您的组件开发需求。我们邀请您在 GitHub 仓库中打开议题和拉取请求。你可以通过以下链接找到 GDK CLI 的源代码:https://github.com/aws-greengrass/ aws-greengrass-gdk-cli

先决条件

要安装和使用 Greengrass 开发套件 CLI,你需要以下内容:

  • Amazon Web Services 账户。如果没有,请参阅设置一个 Amazon Web Services 账户

  • 一台具有互联网连接的 Windows、macOS 或 Unix 类似 Unix 的开发计算机。

  • 对于 GDK CLI 版本 1.1.0 或更高版本,您的开发计算机上安装了 Python 3.6 或更高版本。

    对于安装在开发计算机上的 GDK CLI 版本 1.0.0、Python 3.8 或更高版本。

  • Git 已安装在您的开发计算机上。

  • Amazon Command Line Interface(Amazon CLI) 已在开发计算机上安装并使用凭据进行配置。有关更多信息,请参阅《Amazon Command Line Interface用户指南》Amazon CLI中的 “安装、更新Amazon CLI和卸” 和 “配置”。

    注意

    如果您使用树莓派或其他 32 位 ARM 设备,请安装 Amazon CLI V1。 Amazon CLIV2 不适用于 32 位 ARM 设备。有关更多信息,请参阅安装、更新和卸载Amazon CLI版本 1

  • 要使用 GDK CLI 向Amazon IoT Greengrass服务发布组件,您必须具有以下权限:

    • s3:CreateBucket

    • s3:GetBucketLocation

    • s3:PutObject

    • greengrass:CreateComponentVersion

    • greengrass:ListComponentVersions

  • 要使用 GDK CLI 构建其构件存在于 S3 存储桶而不是本地文件系统中的组件,您必须具有以下权限:

    • s3:ListBucket

    此功能适用于 GDK CLI 版本 1.1.0 及更高版本。

更改日志

下表描述了 GDK CLI 的每个版本中的更改。有关更多信息,请参阅上的 GDK CLI 版本页面。 GitHub

版本

更改

1.6.2

错误修复和改进
  • 修复了 Windows gradlew.bat 由于相对路径而无法运行的问题。

  • 对日志、测试和打包进行了细微改进。

1.6.1

错误修复和改进
  • 为 CLI 参数解析添加了安全补丁。

  • 使 GDK 能够将最新的 Greengrass 测试框架 (GTF) 版本名称作为默认 GTF 版本。

  • 允许 GDK 推荐使用旧版 GTF 的客户更新到最新版本。

1.6.0

新功能
  • 在和命令期间添加了针对 Greengrass 配方架构的配方验证检查。component build component publish此更新可帮助开发人员在组件创建过程的早期识别其组件配方中的可操作问题。

  • 向模板添加可通过test-e2e init命令下拉的置信度测试套件。该置信度测试套件包括八个通用测试,这些测试可用于和扩展以满足基本的组件测试需求。

错误修复和改进
  • 将命令使用的默认 Greengrass 测试框架 (GTF) 版本更新为版本 1.2.0。test-e2e

1.5.0

错误修复和改进

如果build_system是,则更新excludes构建选项识别的模式zip。此版本现在可以识别根据通配符匹配路径名的全局模式。这允许自定义指定要从哪些目录中排除。

1.4.0
新功能
  • 添加新config命令,启动交互式提示以修改现有 GDK 配置文件中的字段。

  • 在继续操作之前,修改gdk component buildgdk component publish命令以验证配方大小是否在 Greengrass 要求范围内(<=16000 字节)。

错误修复和改进
  • 当配方语法错误导致构建无法完成时,在gdk component build命令的输出中添加额外的日志记录。

  • 由于开放测试框架已otf-options重命名otf-version为 Greengrass 测试框架,因此将gtf-optionsgtf-version分别重命名为和。

1.3.0
新功能
  • 添加新test-e2e命令以支持使用开放 end-to-end 测试框架测试组件。

  • 添加了一个新的配置选项zip_name,以支持 zip 编译系统中可配置的 zip 文件名。

  • 将 GDK 配置文件中的region属性设为可选。

错误修复和改进
  • 修复了使用参数初始化 GDK 项目时,即使指定的模板或存储库不存在也会创建新目录的问题。--name

1.2.3
错误修复和改进
  • 修复了由于错误处理不正确而导致存储桶创建失败的问题。

  • 修复了组件配方中的列表结构被移除的问题。

1.2.2
错误修复和改进
  • 配方密钥不再区分大小写。

  • 在创建新存储桶之前,添加检查以确定存储桶中是否存在Amazon Web Services 区域并可供用户访问。要求用户拥有GetBucketLocation权限。

  • 修复了 GDK CLI 配置文件中excludes关键字的问题。

1.2.1
错误修复和改进
  • 接受gdk-config.json文件中区域配置条目Amazon Web Services 区域中的加拿大(中部ca-central-1)()。

  • 修复了publish命令的 --region GDK CLI 参数存在的问题。

1.2.0
新功能
  • 将该options条目添加到 GDK CLI 配置文件中的配置中。buildexcludes在使用编zip译系统时,支持在 options zip 工件中排除某些文件。

  • 添加gradlew编译系统以使用 Gradle Wrapper 来构建组件。

  • 为构建选项添加了对 Kotlin DSL gradle 构建文件的支持。

  • 在 GDK CLI publish 配置文件中为配置添加一个options条目。支持file_upload_args下方,options以便在将文件上传到 Amazon S3 时提供额外的参数。

错误修复和改进
  • 修复了 Gradle 版本在运行构建命令之前未清理的问题。

  • 修复了生成命令失败时构建未退出的问题。

  • 改进了gdk component list命令的输出格式。

1.1.0

新功能
  • 添加对 Gradle 编译系统的支持。

  • 在 Windows 设备上添加对 Maven 编译系统的支持。

  • --bucket参数添加到组件发布命令中。您可以使用此参数指定 GDK CLI 上传组件工件的确切存储桶。

  • --name参数添加到组件 init 命令中。您可以使用此选项指定 GDK CLI 初始化组件的文件夹。

  • 添加对 S3 存储桶中存在但不存在于本地组件构建文件夹中的组件工件的支持。您可以使用此功能来降低大型组件工件(例如机器学习模型)的带宽成本。

错误修复和改进
  • 更新组件 publish 命令以在发布组件之前检查组件是否已构建。如果未生成组件,则此命令现在会为您构建组件

  • 修复了当 ZIP 文件名包含大写字母时,zip 编译系统无法在 Windows 设备上构建的问题。

  • 改进了运行低于 3.8 的 Python 版本的设备的日志消息格式并将默认日志级别更改为。INFO

  • 将 Python 的最低版本要求更改为 Python 3.6。

1.0.0

初始版本。