你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用服务连接器将 Web 应用连接到 Azure 应用程序配置

了解如何使用以下方法之一将 Azure 应用服务上运行的 ASP.NET Core 应用连接到 Azure 应用程序配置:

  • 系统分配的托管标识 (SMI)
  • 用户分配的托管标识 (UMI)
  • 服务主体
  • 连接字符串

本教程使用 Azure CLI 完成以下任务:

  • 设置 Azure 资源
  • 在 Web 应用与应用程序配置之间创建连接
  • 生成应用并将其部署到 Azure 应用服务

先决条件

登录 Azure

在 Azure CLI 中运行 az login 以登录到 Azure。

设置 Azure 资源

首先创建 Azure 资源。

  1. 克隆以下示例存储库:

    git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
    
  2. 将 Web 应用部署到 Azure

    按照以下步骤创建应用服务并部署示例应用。 请确保你具有“订阅参与者”或“所有者”角色。

    创建应用服务,并部署使用系统分配的托管标识来与应用程序配置交互的示例应用。

    # Change directory to the SMI sample
    cd serviceconnector-webapp-appconfig-dotnet\system-managed-identity
    
    # Create a web app
    
    LOCATION='eastus'
    RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
    APP_SERVICE_NAME='webapp-appconfig-smi'
    
    az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
    
    参数 说明 示例
    位置 选择附近的位置。 使用 az account list-locations --output table 列出位置。 eastus
    资源组名称 你将使用此资源组来组织完成本教程所需的所有 Azure 资源。 service-connector-tutorial-rg
    应用服务名称 应用服务名称用作 Azure 中的资源名称,并用于以服务器终结点 https://<app-service-name>.azurewebsites.com 的形式构成应用的完全限定域名。 此名称在整个 Azure 中必须唯一,允许的字符仅包括 A-Z0-9- webapp-appconfig-smi
  3. 创建 Azure 应用程序配置存储

    APP_CONFIG_NAME='my-app-config'
    
    az appconfig create -g $RESOURCE_GROUP_NAME -n $APP_CONFIG_NAME --sku Free -l eastus
    
  4. 将测试配置文件导入 Azure 应用程序配置。

    使用系统分配的托管标识将测试配置文件导入 Azure 应用程序配置。

    1. 运行 cd 进入文件夹 ServiceConnectorSample

    2. ./sampleconfigs.json 测试配置文件导入应用程序配置存储。 如果使用的是 Cloud Shell,请在运行该命令之前上传 sampleconfigs.json

      az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
      

将 Web 应用连接到应用程序配置

在 Web 应用程序与应用程序配置存储之间创建连接。

使用系统分配的托管标识身份验证在 Web 应用程序与应用程序配置存储之间创建连接。 此连接是通过服务连接器实现的。

az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity

system-identity 表示系统分配的托管标识 (SMI) 身份验证类型。 服务连接器还支持以下身份验证:用户分配的托管标识 (UMI)、连接字符串(机密)和服务主体。

验证连接

  1. 若要检查连接是否正常,请在浏览器中通过 https://<myWebAppName>.azurewebsites.net/ 导航到你的 Web 应用。 该网站打开后,你会看到它显示“Hello. Your Azure WebApp is connected to App Configuration by ServiceConnector now”。

工作原理

在下面了解服务连接器在幕后为每种身份验证类型管理哪些配置。

服务连接器为你管理连接配置:

  • 设置 Web 应用的 AZURE_APPCONFIGURATION_ENDPOINT,以允许应用程序访问它并获取应用程序配置终结点。 访问示例代码
  • 激活 Web 应用的系统分配的托管身份验证,并为应用程序配置授予数据读取者角色,以允许应用程序使用 Azure.Identity 中的 DefaultAzureCredential 向应用程序配置进行身份验证。 访问示例代码

有关详细信息,请参阅服务连接器内部机制

测试(可选)

(可选)执行以下测试:

  1. 更新应用程序配置存储中键 SampleApplication:Settings:Messages 的值。

    az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
    
  2. 通过 https://<myWebAppName>.azurewebsites.net/ 导航到你的 Azure Web 应用,然后刷新页面。 你将看到消息已更新为“hello”。

清理资源

完成后,如果不再使用这些 Azure 资源,请运行 az group delete 命令将其删除。 此命令将删除资源组及其中的所有资源。

az group delete -n <myResourceGroupName> --yes

后续步骤

参考下面列出的教程来详细了解服务连接器。