设置LTS资格先决条件 - 免费 RTOS

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

设置LTS资格先决条件

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

为免费RTOS资格赛做好准备

注意

AWS IoT Device Tester for Free RTOS 强烈建议使用最新免费RTOS版本的最新补丁LTS版本。

IDTFRQ2.0 版是免费版的资格RTOS。在运行 IDT FRQ 2.0 进行资格认证之前,您必须在《免费资格指南》中完成董事会RTOS资格认证。要移植库、测试和设置manifest.yml,请参阅《免费移植指南》中的RTOS移植免费RTOS。FRQ2.0 包含不同的资格认证流程。有关详细信息,请参阅《免费资格指南》中的最新RTOS资格变更

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

注意

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

IDT免费下载 RTOS

每个版本的 Free RTOS 都有相应的 for Free 版本,IDT用于RTOS进行资格测试。RTOS从 for Fre IDT e 支持的版本中免费下载相应版本 AWS IoT Device Tester 的RTOS

IDT免费解压缩RTOS到文件系统上您拥有读写权限的位置。由于 Microsoft Windows 对路径长度有字符限制,因此可以免费提取IDTRTOS到根目录,例如C:\D:\

注意

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

下载 Git

IDT必须安装 Git 作为确保源代码完整性的先决条件。

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

警告

IDT使用 Git 来对齐目录的干净或脏状态。如果未安装 Git,FreeRTOSIntegrity 测试组要么会失败,要么会无法按预期运行。如果IDT返回诸如git executable not found或之类的错误git command not found,请安装或重新安装 Git,然后重试。

创建一个 AWS 账户

注意

只有以下版本支持完整的IDT资格套件 AWS 区域

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

  • 美国西部(俄勒冈)

  • 亚太地区(东京)

  • 欧洲地区(爱尔兰)

为了测试您的设备,IDTfor Fre RTOS e 会创建诸如 AWS IoT 东西、免费RTOS群组和 Lambda 函数之类的资源。要创建这些资源,f IDT or Free RTOS 需要您创建和配置一个 AWS 帐户,以及授予 IDT for Free 在运行测试时代表您访问资源的RTOS权限的IAM策略。

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

  1. 如果您已经有一个 AWS 帐户,请跳到下一步。创建一个 AWS 账户

  2. 按照创建IAM角色中的步骤操作。此时请勿添加权限或策略。

  3. 要运行OTA资格测试,请转至步骤 4。否则,请转到步骤 5。

  4. 将OTAIAM权限内联策略附加到您的IAM角色。

    1. 重要

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

    2. 按照以下步骤为您的IAM角色附加必要的权限:

      1. 权限页面上,请选择添加权限

      2. 选择创建内联策略

      3. 选择该JSON选项卡,然后将以下权限复制到JSON文本框中。如果您不在中国区域,请使用大多数区域下的模板。如果您在中国区域,请使用北京和宁夏区域下的模板。

        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": [ "*" ] } ] }
      4. 完成后,选择查看策略

      5. 输入IDTFreeRTOSIAMPermissions作为策略名称。

      6. 选择创建策略

  5. 依附AWSIoTDeviceTesterForFreeRTOSFullAccess于你的IAM角色。

    1. 要为您的IAM角色附加必要的权限,请执行以下操作:

      1. 权限页面上,请选择添加权限

      2. 选择附加策略

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

    2. 选择添加权限

  6. 的导出凭证IDT。有关详细信息,请参阅获取IAM角色凭证以CLI获取访问权限

AWS IoT Device Tester 托管策略

AWSIoTDeviceTesterForFreeRTOSFullAccess托管策略包含版本检查、auto update 功能和指标收集的以下 AWS IoT Device Tester 权限。

  • iot-device-tester:SupportedVersion

    授 AWS IoT Device Tester 予获取受支持产品、测试套件和IDT版本列表的权限。

  • iot-device-tester:LatestIdt

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

  • iot-device-tester:CheckVersion

    授 AWS IoT Device Tester 予检查测试套件和产品的版本兼容性的权限。IDT

  • iot-device-tester:DownloadTestSuite

    授 AWS IoT Device Tester 予下载测试套件更新的权限。

  • iot-device-tester:SendMetrics

    授 AWS 予收集有关 AWS IoT Device Tester 内部使用情况的指标的权限。

(可选)安装 AWS Command Line Interface

您可能更喜欢使用 AWS CLI 来执行某些操作。如果您没有安装 AWS CLI ,请按照安装 AWS CLI 中的说明执行操作。

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