练习 - 设置练习环境
重要
本模块创建 Azure 资源。 如果不打算再次使用此模块,或者没有完成该模块,请务必删除创建的资源。 我们在本模块末尾包含了有关删除所有资源的说明。
本模块假定已安装 Azure CLI。 可以从命令提示符窗口或 Windows PowerShell 运行命令。 建议使用 PowerShell。
该模块还假定你有 Azure 帐户。 你需要 Azure 订阅的“参与者”和“用户访问管理员”角色或“所有者”角色。
重要
如果你属于组织,可能需要与 IT 团队协调以创建 Azure Active Directory (Azure AD) 用户帐户并授予相应的权限。 此外,与 Azure 订阅关联的来宾帐户不满足最低要求。 必须具有成员帐户。
已将 ARM 模板逻辑集成到驱动数据模拟器的 Connection Prefab 中。
下载解决方案和 ARM 模板
在上一单元中,你从 GitHub 克隆或下载了存储库。
使用 Azure CLI 登录到 Azure
找到我们为你创建的 azuredeploy.bicep 脚本。 通常,此文件位于存储库文件夹的根目录中。
从“开始”菜单打开 PowerShell。 所有 Azure CLI 命令都在 PowerShell 控制台中运行。
将当前路径更改为在步骤 1 中找到的azuredeploy.bicep脚本的位置。
cd <path for azuredeploy.bicep>
使用 az login 命令登录到 Azure。 此命令会打开浏览器窗口并提示进行身份验证。
注意
如果该命令无法打开相应的浏览器窗口,请使用以下命令:
az login --use-device-code
。 此设备代码流返回唯一代码。 在浏览器中打开设备登录页,然后输入终端中显示的代码。
在 PowerShell 中设置变量
设置
$projectname
变量。 此值是你在本练习中创建的 Azure 资源的唯一基名称。 额外的随机字符追加到项目名称中。 请确保将值括在双引号中。注意
PowerShell 中的变量以
$
符号开头。$projectname="myproj"
重要
项目名称最多为 14 个字符。 它只能包含小写字母、数字和连字符。
设置应用注册名称,最多可以包含 14 个字符。 此值是混合现实应用的应用程序注册的名称。
$appreg="myappreg"
创建应用注册
运行以下命令创建服务主体,并配置其对 Azure 资源的访问权限。
az ad sp create-for-rbac --name ${appreg} --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID> > AppCredentials.txt
此命令的输出会从标准输出重定向到 AppCredentials.txt 文本文件。 该命令会在其运行所在的目录中创建该文件。 可能发生的任何错误都会显示在 PowerShell 控制台中。 打开该文件以检索凭据,以便稍后配置遥测模拟器应用程序。
注意
请注意保存此文件的位置,因为它包含凭据。 请考虑在完成此学习路径后删除该文件。
获取应用注册的对象 ID 和用户 ID
使用以下命令在 PowerShell 中为
ObjectID
创建和设置变量。$objectid=$(az ad sp list --display-name ${appreg} --query [0].objectId --output tsv)
使用
echo
命令验证变量是否包含 GUID。 如果不包含,请检查前面的步骤。echo $objectid
为用户 ID 创建和设置变量。
$userid=$(az ad signed-in-user show --query objectId -o tsv)
使用
echo
命令验证变量是否包含 GUID。 如果不包含,请检查前面的步骤。echo $userid
创建 Azure 资源组
在 PowerShell 中使用az group create命令创建资源组:
az group create --name ${projectname}-rg --location eastus
请特别注意该位置。 它必须是 eastus
。 此区域是Microsoft.SignalRService/SignalR和Microsoft.DigitalTwins/digitalTwinsInstances的有效区域之一。
将 ARM 模板部署到新建的资源组
将提供的bicep文件部署到资源组,并将输出重定向到名为ARM_deployment_out.txt的文本文件。 此过程需要 10 到 15 分钟才能完成。
az deployment group create --template-file azuredeploy.bicep --resource-group ${projectname}-rg `
--parameters projectName=${projectname} userId=${userid} appRegObjectId=${objectid} `
> ARM_deployment_out.txt
该文件仅供参考。 此模块的其余部分不需要它。
注意
你可能会收到一些关于有效 URI 重命名、输出包含凭据以及类型可用性的警告消息。 查看这些警告,但无需立即执行任何操作。 警告不会影响此模块。
提示
如果出于任何原因需要重新创建 Azure 资源,请确保删除资源和资源组之前的所有实例。
安装 Azure CLI 扩展
在 PowerShell 中使用az extension命令在其中安装 Azure CLI 的azure-iot扩展。
az extension add --name azure-iot
此命令下载并安装扩展。 如果已安装,该命令会发出警报。
查询 Azure 部署的关键配置参数
在 PowerShell 中使用az deployment group show命令查询 Azure 部署。 此命令将输出重定向到运行命令的同一目录下名为Azure_config_settings.txt的文件。
az deployment group show --name azuredeploy --resource-group ${projectname}-rg `
--query properties.outputs.importantInfo.value > Azure_config_settings.txt
查询 Azure 部署的资源组连接参数
使az iot hub connection-string show命令在 IoT 中心查询资源组连接字符串参数。 该模块稍后会用到此值。
az iot hub connection-string show --resource-group ${projectname}-rg >> Azure_config_settings.txt
该命令将输出重定向并附加到运行命令的同一目录下名为Azure_config_settings.txt的文件。 你在上一部分中创建了此文件。 这两个
>
符号指示命令追加而不是覆盖。确认 PowerShell 中的输出文本文件的内容。 此命令会显示多个密钥配置参数以供稍后在此模块中使用。
get-content Azure_config_settings.txt