使用 AWS IoT Greengrass 创建 AWS CloudFormation 资源 - AWS IoT Greengrass

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

使用 AWS IoT Greengrass 创建 AWS CloudFormation 资源

AWS IoT Greengrass 与 AWS CloudFormation 集成,后者是一项服务,可帮助您对 AWS 资源进行建模和设置,这样您只需花较少的时间来创建和管理资源与基础设施。您可以创建一个描述所需的全部 AWS 资源的模板(例如组件版本和部署),CloudFormation 将为您预置和配置这些资源。

在您使用 CloudFormation 时,可重复使用模板来不断地重复设置您的 AWS IoT Greengrass 资源。描述您的资源一次,然后在多个 AWS 账户 和区域中反复预置相同的资源。

AWS IoT Greengrass 和 CloudFormation 模板

要为 AWS IoT Greengrass 和相关服务预置和配置资源,您必须了解 CloudFormation 模板。模板是 JSON 或 YAML 格式的文本文件。这些模板可描述您要在 CloudFormation 堆栈中预置的资源。如果您不熟悉 JSON 或 YAML,可以在 CloudFormation Designer 的帮助下开始使用 CloudFormation 模板。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的什么是 CloudFormation Designer?

AWS IoT Greengrass 支持在 CloudFormation 中创建组件版本和部署。有关更多信息(包括组件版本和部署的 JSON 和 YAML 模板示例),请参阅《AWS CloudFormation 用户指南》中的 AWS IoT Greengrass 资源类型参考

组件版本模板示例

以下是一个简单组件版本的 YAML 模板。为便于阅读,JSON 配方包含换行符。

Parameters: ComponentVersion: Type: String Resources: TestSimpleComponentVersion: Type: AWS::GreengrassV2::ComponentVersion Properties: InlineRecipe: !Sub - "{\n \"RecipeFormatVersion\": \"2020-01-25\",\n \"ComponentName\": \"component1\",\n \"ComponentVersion\": \"${ComponentVersion}\",\n \"ComponentType\": \"aws.greengrass.generic\",\n \"ComponentDescription\": \"This\",\n \"ComponentPublisher\": \"You\",\n \"Manifests\": [\n {\n \"Platform\": {\n \"os\": \"darwin\"\n },\n \"Lifecycle\": {},\n \"Artifacts\": []\n },\n {\n \"Lifecycle\": {},\n \"Artifacts\": []\n }\n ],\n \"Lifecycle\": {\n \"install\": {\n \"script\": \"yuminstallpython\"\n }\n }\n }" - { ComponentVersion: !Ref ComponentVersion }

部署模板示例

以下是一个 YAML 文件,它定义了一个简单的部署模板。

Parameters: ComponentVersion: Type: String TargetArn: Type: String Resources: TestDeployment: Type: AWS::GreengrassV2::Deployment Properties: Components: component1: ComponentVersion: !Ref ComponentVersion TargetArn: !Ref TargetArn DeploymentName: CloudFormationIntegrationTest DeploymentPolicies: FailureHandlingPolicy: DO_NOTHING ComponentUpdatePolicy: TimeoutInSeconds: 5000 Action: SKIP_NOTIFY_COMPONENTS ConfigurationValidationPolicy: TimeoutInSeconds: 30000 Outputs: TestDeploymentArn: Value: !Sub - arn:${AWS::Partition}:greengrass:${AWS::Region}:${AWS::AccountId}:deployments:${DeploymentId} - DeploymentId: !GetAtt TestDeployment.DeploymentId

了解有关 CloudFormation 的更多信息

要了解有关 CloudFormation 的更多信息,请参阅以下资源: