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

快速入门:使用 Azure 应用程序配置创建 Python 应用

在本快速入门中,你将使用适用于 Azure 应用程序配置的 Python 提供程序通过 Azure 应用程序配置 Python 提供程序客户端库来集中存储和管理应用程序设置。

Python 应用配置提供程序是在 Azure SDK for Python 之上运行的一个库,可帮助 Python 开发人员轻松使用应用配置服务。 借助该库,可以像使用字典一样使用配置设置。

先决条件

添加键值

将以下键值添加到应用程序配置存储区。 有关如何使用 Azure 门户或 CLI 将键值添加到存储区的详细信息,请转到创建键值

密钥 Label 内容类型
message Hello 留空 留空
test.message Hello test 留空 留空
my_json {"key":"value"} 留空 application/json

控制台应用程序

在本部分中,你将创建控制台应用程序并从应用程序配置存储加载数据。

连接到应用程序配置

  1. 为名为 app-configuration-quickstart 的项目创建一个新目录。

    mkdir app-configuration-quickstart
    
  2. 切换到新创建的 app-configuration-quickstart 目录。

    cd app-configuration-quickstart
    
  3. 使用 pip install 命令安装 Azure 应用配置提供程序。

    pip install azure-appconfiguration-provider
    
  4. 在 app-configuration-quickstart 目录中,创建名为 app-configuration-quickstart.py 的新文件,并添加以下代码 :

    可以使用 DefaultAzureCredential 向应用程序配置存储区进行身份验证。 按照说明为凭据分配应用程序配置数据读取者角色。 在运行应用程序之前,请务必留出足够的时间来传播权限。

    from azure.appconfiguration.provider import (
        load,
        SettingSelector
    )
    from azure.identity import DefaultAzureCredential
    import os
    
    endpoint = os.environ.get("AZURE_APPCONFIG_ENDPOINT")
    
    # Connect to Azure App Configuration using a connection string.
    config = load(endpoint=endpoint, credential=credential)
    credential = DefaultAzureCredential()
    
    # Find the key "message" and print its value.
    print(config["message"])
    # Find the key "my_json" and print the value for "key" from the dictionary.
    print(config["my_json"]["key"])
    
    # Connect to Azure App Configuration using a connection string and trimmed key prefixes.
    trimmed = {"test."}
    config = load(endpoint=endpoint, credential=credential, trim_prefixes=trimmed)
    # From the keys with trimmed prefixes, find a key with "message" and print its value.
    print(config["message"])
    
    # Connect to Azure App Configuration using SettingSelector.
    selects = {SettingSelector(key_filter="message*", label_filter="\0")}
    config = load(endpoint=endpoint, credential=credential, selects=selects)
    
    # Print True or False to indicate if "message" is found in Azure App Configuration.
    print("message found: " + str("message" in config))
    print("test.message found: " + str("test.message" in config))
    

运行应用程序

  1. 设置环境变量。

    将名为 AZURE_APPCONFIG_ENDPOINT 的环境变量设置为 Azure 门户中存储区的“概述”下的应用程序配置存储区的终结点。

    如果使用 Windows 命令提示符,则请运行以下命令并重启命令提示符,这样更改才会生效:

    setx AZURE_APPCONFIG_ENDPOINT "endpoint-of-your-app-configuration-store"
    

    如果使用 PowerShell,请运行以下命令:

    $Env:AZURE_APPCONFIG_ENDPOINT = "endpoint-of-your-app-configuration-store"
    

    如果使用 macOS 或 Linux,则请运行以下命令:

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. 正确设置环境变量后,请运行以下命令以在本地运行应用:

    python app-configuration-quickstart.py
    

    应会看到以下输出:

    Hello
    value
    Hello test
    message found: True
    test.message found: False
    

Web 应用程序

应用程序配置提供程序将数据加载到 Mapping 对象中(可作为字典进行访问),可将该对象与各种 Python 框架的现有配置结合使用。 本部分介绍如何在 Flask 和 Django 等常用 Web 框架中使用应用程序配置提供程序。

可通过更新现有 Flask Web 应用中的内置配置来使用 Azure 应用程序配置。 为此,可以将应用程序配置提供程序对象传递给 app.py 中 Flask 应用实例的 update 函数:

azure_app_config = load(endpoint=os.environ.get("AZURE_APPCONFIG_ENDPOINT"), credential=credential)

# NOTE: This will override all existing configuration settings with the same key name.
app.config.update(azure_app_config)

# Access a configuration setting directly from within Flask configuration
message = app.config.get("message")

有关如何在 Python Web 应用程序中使用 Azure 应用程序配置的完整代码示例,请参阅 Azure 应用程序配置 GitHub 存储库。

清理资源

如果不想继续使用本文中创建的资源,请删除此处创建的资源组以避免产生费用。

重要

删除资源组的操作不可逆。 将永久删除资源组以及其中的所有资源。 请确保不要意外删除错误的资源组或资源。 如果在包含要保留的其他资源的资源组中创建了本文的资源,请从相应的窗格中单独删除每个资源,而不是删除该资源组。

  1. 登录到 Azure 门户,然后选择“资源组”。
  2. 在“按名称筛选”框中,输入资源组的名称
  3. 在结果列表中,选择资源组名称以查看概述。
  4. 选择“删除资源组”。
  5. 系统会要求确认是否删除资源组。 重新键入资源组的名称进行确认,然后选择“删除”。

片刻之后,将会删除该资源组及其所有资源。

后续步骤

在本快速入门中,你创建了新的应用配置存储区,并了解了如何从 Python 应用访问键/值。

有关其他代码示例,请访问: