先决条件 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

先决条件

本节介绍使用测试微控制器的先决条件Amazon IoT Device Tester。

准备中断 FreeRTOS 资格认证准备演

注意

Amazon IoT Device Testerfor FreeRTOS 强烈建议使用最新 FreerTOS-LTS 版本的最新补丁版本。

FRQ 2.0 的 IDT 是 FreeRTOS 的资格认证。在运行 IDT FRQ 2.0 进行资格认证之前,您必须完成 F reeRTOS 资格指南中的主板资格认证。要移植库、测试和设置,请参阅 FreeRTOS 移植指南中的 FreeRTOS 库移植manifest.ymlFRQ 2.0 包含不同的资格认证流程。有关详细信息,请参阅 FreeRTOS 资格指南中的最新资格变更

Freertos-Libraries-In tegraries-Tests 存储库必须存在,IDT 才能运行。有关如何克隆此存储库并将其移植到您的源项目的信息,请参阅 README.m d。Freertos-Libraries-Integration-tests 必须包含manifest.yml位于项目根目录中的,IDT 才能运行。

注意

IDT 依赖于测试存储库的实现UNITY_OUTPUT_CHAR。测试输出日志和设备日志不得相互交错。有关更多详细信息,请参阅 FreeRTOS 移植指南中的实现库日志宏部分。

下载适用于 FreeRTOS 的 IDT

每个版本的 FreeRTOS 都有相应版本的 IDT,供 FreeRTOS 进行资格测试。从 FreeRTOS 的支持版本下载适用于 FreeRTOSAmazon IoT Device Tester 的 IDT 的相应版本

将 FreeRTOS 的 IDT 解压缩到文件系统上您具有读写权限的位置。由于微软 Windows 对路径长度有限制,因此将 FreeRTOS 的 IDT 解压缩到根目录中,例如C:\D:\

注意

多个用户不得从共享位置(例如 NFS 目录或 Windows 网络共享文件夹)运行 IDT。这将导致崩溃或数据损坏。我们建议您将 IDT 包解压缩到本地驱动器。

下载Git t

IDT 必须先安装 Git 才能确保源代码的完整性。

按照GitHub指南中的说明安装 Git。要验证当前安装的 Git 版本,请在终git --version端输入命令。

警告

IDT 使用 Git 来调整目录的 “干净” 或 “已脏” 状态。如果未安装 Git,则FreeRTOSIntegrity测试组要么失败,要么无法按预期运行。如果 IDT 返回错误,例如git executable not foundgit command not found,请安装或重新安装 Git,然后重试。

创建和配置 Amazon 账户

注意

仅以下内容支持完整的 IDT 资格认证套件Amazon Web Services 区域

  • 美国东部(弗吉尼亚州北部)

  • 美国西部(俄勒冈州)

  • 亚太地区(东京)

  • 欧洲(爱尔兰)

为了测试你的设备,IDT for FreeRTOS 会创建诸如Amazon IoT东西、FreeRTOS 群组和 Lambda 函数之类的资源。要创建这些资源,IDT for FreeRTOS 要求您创建和配置一个Amazon账户、一个 IAM 用户账户和一个 IAM 策略,该策略授予 IDT for FreeRTOS 在运行测试时代表您访问资源的权限。

以下步骤用于创建和配置您的Amazon账户。

  1. 如果您已有 Amazon 账户,请跳到下一步。否则创建一个Amazon账户

  2. 创建一个 IAM 策略,向 IDT for FreeRTOS 授予创建具有特定权限的服务角色的 IAM 权限。

    1. 登录 IAM 控制台

    2. 在导航窗格中,选择 Policies (策略)

    3. 在内容窗格中,选择创建策略

    4. 选择 JSON 选项卡,然后将以下权限复制到 JSON 文本框中。

      重要

      以下策略模板授予创建角色、创建策略和将策略附加到角色的 IDT 权限。FreeRTOS 的 IDT 使用这些权限进行创建角色的测试。尽管策略模板不向用户提供管理员权限,但这些权限可能用于获得对您的 Amazon 账户的管理员访问权限。

      Most Regions
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotdeviceadvisor:*", "Resource": [ "arn:aws:iotdeviceadvisor:*:*:suiterun/*/*", "arn:aws:iotdeviceadvisor:*:*:suitedefinition/*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/idt*", "Condition": { "StringEquals": { "iam:PassedToService": "iotdeviceadvisor.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "execute-api:Invoke*", "iam:ListRoles", "iot:Connect", "iot:CreateJob", "iot:DeleteJob", "iot:DescribeCertificate", "iot:DescribeEndpoint", "iot:DescribeJobExecution", "iot:DescribeJob", "iot:DescribeThing", "iot:GetPolicy", "iot:ListAttachedPolicies", "iot:ListCertificates", "iot:ListPrincipalPolicies", "iot:ListThingPrincipals", "iot:ListThings", "iot:Publish", "iot:UpdateThingShadow", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:PutRetentionPolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iotdeviceadvisor:*", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:DeleteLogGroup", "Resource": "arn:aws:logs:*:*:log-group:/aws/iot/deviceadvisor/*" }, { "Effect": "Allow", "Action": "logs:GetLogEvents", "Resource": "arn:aws:logs:*:*:log-group:/aws/iot/deviceadvisor/*:log-stream:*" }, { "Effect": "Allow", "Action": [ "iam:CreatePolicy", "iam:DetachRolePolicy", "iam:DeleteRolePolicy", "iam:DeletePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::*:policy/idt*", "arn:aws:iam::*:role/idt*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:*::parameter/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:RunInstances", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateKeyPair", "ec2:DeleteKeyPair" ], "Resource": [ "arn:aws:ec2:*:*:key-pair/idt-ec2-ssh-key-*" ] }, { "Effect": "Allow", "Condition": { "StringEqualsIgnoreCase": { "aws:ResourceTag/Owner": "IoTDeviceTester" } }, "Action": [ "ec2:TerminateInstances", "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupIngress" ], "Resource": [ "*" ] } ] }
      Beijing and Ningxia Regions

      以下策略模板可以在北京和宁夏区域使用。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreatePolicy", "iam:DetachRolePolicy", "iam:DeleteRolePolicy", "iam:DeletePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws-cn:iam::*:policy/idt*", "arn:aws-cn:iam::*:role/idt*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws-cn:ssm:*::parameter/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:RunInstances", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateKeyPair", "ec2:DeleteKeyPair" ], "Resource": [ "arn:aws-cn:ec2:*:*:key-pair/idt-ec2-ssh-key-*" ] }, { "Effect": "Allow", "Condition": { "StringEqualsIgnoreCase": { "aws-cn:ResourceTag/Owner": "IoTDeviceTester" } }, "Action": [ "ec2:TerminateInstances", "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupIngress" ], "Resource": [ "*" ] } ] }
    5. 完成后,选择查看策略

    6. Review (查看) 页面上,输入 IDTFreeRTOSIAMandEC2Permissions 作为策略名称。查看策略 Summary (摘要) 以验证策略授予的权限。

    7. 选择 Create policy(创建策略)

  3. 创建具有运行所需权限的 IAM 用户Amazon IoT Device Tester。

    1. 按照创建 IAM 用户(控制台)中的步骤 1 到 5 进行操作。

    2. 要向您的 IAM 用户附加必要的权限,请执行以下操作:

      1. Set permissions (设置权限) 页面上,选择 Attach existing policies to user directly (直接将现有策略附加到用户)

      2. 搜索您在步骤 2 中创建的IDTFreeRTOSIAMandEC2Permissions策略。选中复选框。

      3. 搜索AWSIoTDeviceTesterForFreeRTOSFullAccess政策。选中复选框。

    3. 请选择下一步:标签

    4. 选择 Next: Review (下一步:审核) 以查看您的选择摘要。

    5. 选择 Create user

    6. 要查看用户的访问密钥(访问密钥 ID 和秘密访问密钥),请选择每个密码和访问密钥旁边的 Show (显示),然后选择 Download .csv (下载 .csv)。将该文件保存到安全的位置。

Amazon IoT Device Tester 托管式策略

AWSIoTDeviceTesterForFreeRTOSFullAccess 托管策略包含以下权限,允许设备测试程序执行和收集指标:

  • iot-device-tester:SupportedVersion

    授予获取 IDT 支持的 FreeRTOS 版本和测试套件版本列表的权限,以便可以从中获取这些版本Amazon CLI。

  • iot-device-tester:LatestIdt

    授予权限以获取可供下载的最新 Amazon IoT Device Tester 版本。

  • iot-device-tester:CheckVersion

    授予权限以检查产品、测试套件和 Amazon IoT Device Tester 版本组合是否兼容。

  • iot-device-tester:DownloadTestSuite

    向 Amazon IoT Device Tester 授予权限以下载测试套件。

  • iot-device-tester:SendMetrics

    授予权限以发布 Amazon IoT Device Tester 使用情况指标数据。

(可选) 安装 Amazon Command Line Interface

您可能偏好使用 Amazon CLI 执行一些操作。如果您没有安装 AuthorAmazon CLI ity,请按照安装此处的说明操作Amazon CLI。

通过命令行运行aws configure,Amazon CLI为要使用的Amazon区域配置。有关支持 FreeRTOS IDT 的Amazon区域的信息,请参阅Amazon区域和终端节点。有关更多信息,aws configure请参阅使用进行快速配置aws configure