练习 - 设置练习环境

已完成

重要

本模块创建 Azure 资源。 如果不打算再次使用此模块,或者没有完成该模块,请务必删除创建的资源。 本模块末尾包含有关删除所有资源的说明。

本模块假定已安装 Azure CLI。 可以从命令提示符窗口或 Windows PowerShell 运行命令。 建议使用 PowerShell。

该模块还假定你有 Azure 帐户。 需要 Azure 订阅上的参与者和用户访问管理员或所有者角色。

重要

如果你属于组织,可能需要与 IT 团队协调以创建 Azure Active Directory (Azure AD) 用户帐户并授予相应的权限。 此外,与 Azure 订阅关联的来宾帐户不满足最低要求。 必须具有成员帐户。

已将 ARM 模板逻辑集成到驱动数据模拟器的 Connection Prefab 中。

下载解决方案和 ARM 模板

在上一单元中,你从 GitHub 克隆或下载了存储库

使用 Azure CLI 登录到 Azure

  1. 找到已为你创建的 azuredeploy.bicep 脚本。 通常,此文件位于存储库文件夹的根目录中。

  2. 从“开始”菜单打开 PowerShell。 所有 Azure CLI 命令都在 PowerShell 控制台中运行。

  3. 将当前路径更改为在步骤 1 中找到的azuredeploy.bicep脚本的位置。

    cd <path for azuredeploy.bicep>
    
  4. 使用 az login 命令登录到 Azure。 此命令会打开浏览器窗口并提示进行身份验证。

    注意

    如果该命令无法打开相应的浏览器窗口,请使用以下命令:az login --use-device-code。 此设备代码流返回唯一代码。 在浏览器中打开设备登录页,然后输入终端中显示的代码。

    Screenshot of the output of the Windows PowerShell command running the az login command.

在 PowerShell 中设置变量

  1. 设置 $projectname 变量。 此值是你在本练习中创建的 Azure 资源的唯一基名称。 额外的随机字符追加到项目名称中。 请确保将值括在双引号中。

    注意

    PowerShell 中的变量以$符号开头。

    $projectname="myproj"
    

    重要

    项目名称最多为 14 个字符。 它只能包含小写字母、数字和连字符。

  2. 设置应用注册名称,最多可以包含 14 个字符。 此值是混合现实应用的应用程序注册的名称。

    $appreg="myappreg"
    

创建应用注册

运行以下命令创建服务主体,并配置其对 Azure 资源的访问权限。

az ad sp create-for-rbac --name ${appreg} --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID> > AppCredentials.txt

此命令的输出会从标准输出重定向到AppCredentials.txt文本文件。 该命令在运行命令的同一目录中创建该文件。 可能发生的任何错误都会显示在 PowerShell 控制台中。 打开该文件以检索凭据,以便稍后配置遥测模拟器应用程序。

注意

请注意保存此文件的位置,因为它包含凭据。 请考虑在完成此学习路径后删除该文件。

Screenshot of setting the app product and registration names and creating the app registration in PowerShell.

获取应用注册的对象 ID 和用户 ID

  1. 使用以下命令在 PowerShell 中为ObjectID创建和设置变量。

    $objectid=$(az ad sp list --display-name ${appreg} --query [0].objectId --output tsv)
    
  2. 使用echo命令验证变量是否包含 GUID。 如果不包含,请检查前面的步骤。

    echo $objectid
    
  3. 为用户 ID 创建和设置变量。

    $userid=$(az ad signed-in-user show --query objectId -o tsv)
    
  4. 使用echo命令验证变量是否包含 GUID。 如果不包含,请检查前面的步骤。

    echo $userid
    

    Screenshot of using the Windows PowerShell environment to get the apps object and user ID.

创建 Azure 资源组

在 PowerShell 中使用az group create命令创建资源组:

az group create --name ${projectname}-rg --location eastus

请特别注意该位置。 它必须是 eastus。 此区域是Microsoft.SignalRService/SignalRMicrosoft.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 部署的资源组连接参数

  1. 使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的文件。 你在上一部分中创建了此文件。 这两个>符号指示命令追加而不是覆盖。

  2. 确认 PowerShell 中的输出文本文件的内容。 此命令会显示多个密钥配置参数以供稍后在此模块中使用。

    get-content Azure_config_settings.txt
    

    Screenshot of running the get-content command in PowerShell.