使用 Python、Flask 和 Doppler 构建并部署 Web 应用 Doppler 是什么?使用 Doppler 的优势 Doppler 入门 设置 Python 应用 将 Doppler 与 Python 和 Flask 集成 部署 Flask 应用 结论

2025-06-07

使用 Python、Flask 和 Doppler 构建和部署 Web 应用程序

什么是多普勒?

使用多普勒的好处

多普勒入门

设置 Python 应用程序

将 Doppler 与 Python 和 Flask 集成

部署 Flask 应用

结论

想象一下:您正在构建一个使用全局配置值(公钥和私钥、环境执行配置、数据库凭据、域名和 URL)的应用程序,并且需要频繁更新它们。您首先想到的解决方案是使用 ENV 文件来管理全局值。然而,很快您就会意识到这种方法可能是一个负担,并且不可扩展,尤其是在分布式架构系统中。

假设您找到了一个通用的机密管理器解决方案,可以高效地大规模同步环境变量。这能比 ENV 文件更好地帮助您解决问题吗?答案是肯定的,而 Doppler 正是解决您问题的最佳方案。

本教程将教您如何将 Doppler 集成到您的应用中并用它来存储您的机密信息。在本文中,您将使用 Python (Flask) 和 Heroku 构建并部署一个演示应用,然后使用 Doppler 管理其机密信息和环境变量。

什么是多普勒?

Doppler 是一款通用的机密管理器,可让您跨设备、环境和团队成员高效地同步环境变量。它使您能够从集中式来源存储、共享和访问机密,并支持协作、访问控制、版本控制、机密文档等功能。

使用多普勒的好处

Doppler 提供许多独特的特性和功能,使其不仅仅是一个秘密存储工具。以下是其中一些:

  • Doppler 简化了跨设备、环境和团队成员的机密和应用程序配置的同步。
  • Doppler 允许您的团队跨多个项目和环境进行协作和组织秘密。
  • Doppler 帮助开发人员在多个位置自动更新其应用程序中的机密信息。
  • Doppler 让您可以随处部署,无论是 Docker、无服务器环境还是您工作的任何地方。
  • Doppler 消除了保持 ENV 文件同步的负担,从而提高了您团队的工作效率。
  • Doppler 支持秘密版本控制,这意味着您可以轻松地实时跟踪更改并回滚损坏的更改。
  • Doppler 还允许您为秘密值创建文档和注释,以便您了解它们的用途。

多普勒入门

要继续本教程,您需要一个 Doppler 帐户。 如果您没有帐户,请使用您的电子邮件地址、Google 帐户或安全单点登录 (Secure SSO)在Doppler 网站上创建一个。

步骤 1:创建多普勒项目

Projects用于 Doppler 中,以从本地开发到生产全面组织和管理您的秘密。

点击Create Project多普勒仪表板中的按钮,如下图所示:

第 2 步:将您的秘密存储在 Doppler 中

要在 Doppler 中存储机密,Project请从仪表板中选择要配置的。单击Project您之前创建的:

然后,选择环境执行模式(开发、暂存、生产)来配置您的机密。选择dev配置:

接下来,配置Project配置文件并在其中存储机密。点击Add First Secret按钮手动添加机密,或Import Secrets点击按钮从 ENV、JSON 或 YAML 文件中获取机密。

Save在 Doppler 中添加/更新您的秘密后,不要忘记按下按钮。

步骤 3:安装 Doppler CLI

Doppler CLI 是一个轻量级的二进制文件,允许你在任何环境(本地、开发、CI/CD、暂存、生产)中访问你的机密。请按照本指南 将其安装到你的机器上。

步骤 4:验证 Doppler CLI

要将 Doppler CLI 连接到您的帐户并访问您的机密信息Projects,您需要使用访问令牌进行身份验证。Doppler CLI 提供了一个doppler login通过浏览器进行身份验证的命令(适用于本地开发)。

在终端中输入以下内容:

doppler login
Enter fullscreen mode Exit fullscreen mode

每个工作场所只需执行一次此操作。如果您有多个工作场所,则可以将每个登录名限定 在单独的目录中。

步骤 5:设置多普勒项目

Project安装并验证 Doppler CLI 后,您需要在开发环境中配置它以获取其机密。Doppler CLI 提供了一个doppler setup命令来配置您的应用Project

将当前目录更改为您的应用程序目录,然后在终端中输入以下内容:

cd ./your/project/directory  
doppler setup
Enter fullscreen mode Exit fullscreen mode

现在,选择Projectconfig想要配置应用程序使用的:

您还可以使用doppler.yaml文件预先配置多普勒仪Project及其config应用。请按照本指南 了解如何操作。

Doppler 允许您通过将多个项目限定到特定目录来同时在一台机器上为多个项目设置机密。

步骤 6:将 Doppler 注入正在运行的进程

为你的应用设置好密钥的Project和之后config,你可以使用 将密钥作为环境变量注入到正在运行的进程中doppler run。让我们看一个从 Python shell 访问密钥的示例。

在您的终端中,输入以下内容:

doppler run -- python3

import os  
print(os.getenv("DB_URL"))  
print(os.getenv("PAYMENT_KEY"))
Enter fullscreen mode Exit fullscreen mode

在这里,您启动了一个进程(python3),并使用将您的机密(我们之前创建的)注入其中doppler run。然后,您使用从环境变量中获取机密os.getenv()

您可以从本指南中了解更多将多普勒注入正在运行的进程的方法

设置 Python 应用程序

现在您已经成功使用 Doppler 将机密注入到正在运行的进程中,让我们开始构建一个使用您存储在 Doppler 中的机密的 Python(Flask)Web 应用程序。

步骤 1:安装 Flask Web 框架

你需要在你的机器上安装 Flask。在终端中,输入以下内容:

pip install Flask
Enter fullscreen mode Exit fullscreen mode

第 2 步:创建 Flask 应用

app.py在设置 Doppler 的同一目录中创建一个名为的文件,并在其中保存以下代码:

from flask import *

app = Flask(__name__)


@app.route("/")
def home():
    return "Hello World!"


if __name__ == "__main__":
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

步骤 3:使用 Doppler 启动应用程序

启动应用程序doppler run,将机密信息注入 Flask 服务器。在终端中,输入以下内容:

doppler run -- python3 app.py
Enter fullscreen mode Exit fullscreen mode

当您在浏览器中打开该http://127.0.0.1:5000URL 时,您将收到如下响应:

将 Doppler 与 Python 和 Flask 集成

os.getenv()让我们从 Doppler 获取机密信息,并在 Python (Flask) Web 应用中使用它们。由于 Doppler 将机密信息作为环境变量注入,因此您可以像使用 ENV 文件一样,使用 Python 提供的内置函数轻松检索它们。

步骤 1:更新 Flask 应用

app.py使用以下代码更新您之前创建的:

import os
from flask import *

app = Flask(__name__)


@app.route("/")
def home():
    response = f"""
    <h1>Doppler Secrets</h1>

    <h3>DB_URL: {os.getenv('DB_URL')}</h3>
    <h3>API_HOST: {os.getenv('API_HOST')}</h3>
    <h3>PAYMENT_KEY: {os.getenv('PAYMENT_KEY')}</h3>
    <h3>ADMIN_USERNAME: {os.getenv('ADMIN_USERNAME')}</h3>
    """

    return response


if __name__ == "__main__":
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

第 2 步:使用 Doppler 启动应用程序

使用启动应用程序doppler run并在浏览器中打开http://127.0.0.1:5000URL 以确认 Doppler 正确注入了您的秘密。

doppler run -- python3 app.py
Enter fullscreen mode Exit fullscreen mode

步骤 3:更新 Doppler 中的机密

从您的 Doppler 仪表板更改秘密,以查看环境变量的同步变得多么简单、高效和可扩展。

部署 Flask 应用

Doppler 为许多云提供商提供集成,包括 Heroku、AWS、Digital Ocean、Azure、Docker、GCP, 以确保您在开发和部署的任何地方都能保持机密同步。

Doppler 还简化了整个云提供商集成流程,只需点击几下即可完成设置。让我们看看如何将 Doppler 与 Heroku 集成。

步骤 1:在 Heroku 中创建应用程序

登录到您的Heroku 仪表板 并创建一个新应用程序来部署您的 Python(Flask)应用程序。

第 2 步:将 Doppler 与 Heroku 集成

转到多普勒 (staging) 配置设置INTEGRATIONS中的选项卡stgProject

不要忘记在stg你的配置中配置你的秘密Project

接下来,单击Add Integration按钮并从云提供商列表中选择 Heroku。

然后,授权 Doppler 访问您的 Heroku 帐户。

最后,通过设置以下内容完成集成过程:

  • Heroku 项目类型:HerokuAppPipeline
  • App:您之前创建的 Heroku 应用程序的名称 ( doppler-demo)。
  • 要同步的配置:Doppler 应该注入到您的应用程序中的配置(stg)。
  • 导入选项:是否将 Heroku 中先前配置的环境变量导入到 Doppler。

Set Up Integration提供所有必要信息后单击按钮。

您已成功将 Doppler 与 Heroku 集成。每当您对Project机密进行更改(添加/更新)时,Doppler 都会自动将其与您的 Heroku 应用同步Config Vars

步骤 3:将您的应用部署到 Heroku

按照通常的方式将您的应用部署到 Heroku。

结论

通过将 Doppler 与 Python (Flask) 和 Heroku 集成,您以极少的精力构建并部署了一个具有高效可扩展机密管理功能的 Web 应用。您了解了如何使用Doppler存储、共享和访问机密,以及如何将其Project与云提供商 集成。

您还可以从官方文档中了解有关 Doppler 的更多信息。如有任何疑问,请在 Twitter 上联系我:@LordGhostX

文章来源:https://dev.to/lordghostx/build-and-deploy-a-web-app-with-python-flask-and-doppler-9jm
PREV
Python 之禅;深入解读
NEXT
身份验证与授权 什么是身份验证?什么是授权?使用 Auth0 进一步实现身份验证和授权