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

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

使用 AWS CloudFormation 创建 AWS IoT Greengrass 资源

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

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

AWS IoT Greengrass 和 AWS CloudFormation 模板

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

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

ComponentVersion 模板示例

以下是简单组件版本的 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

了解有关 AWS CloudFormation 的更多信息

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