gpt4 book ai didi

python - 使用 GitHub 的 Azure Function CI/CD 部署丢失了 .gitignore 中的重要文件

转载 作者:行者123 更新时间:2023-12-03 07:04:50 26 4
gpt4 key购买 nike

奇怪的问题,但我找不到答案。解决消费者问题的经典“中间人”(Git)。

我有一个 Azure 函数(python、计时器触发器),我可以直接从 VS Code 成功部署它。这是普通文件structure但是,当我在门户(部署中心)中分配部署槽并连接到 GitHub(使用 this example )时,我丢失了一个重要的 .py 文件,该文件已在我的 .gitignore 文件。 .gitignore 文件位于项目文件夹的根目录中。

该文件有一些 API key 、Slack Hook 等 - 所以它对我的函数至关重要。显然,我不希望这些 key 暴露在我的 GitHub 页面上,但我需要在 Azure Function 中使用它们。

如果我想做 CI/CD 管道,我是否具备 SOL 能力?

例如,我并不总是在我的个人笔记本电脑上使用 VS Code,我可能想直接从 GitHub 即时调整计时器计划 - 这种 CI/CD 连接是确保我​​的函数正常运行的最佳方式保持运行(它是 Linux 消费计划上的一个 Python 函数,所以我不能只从门户编辑 CRON)。

最佳答案

使用 VSCode 进行开发时,您通常会将 secret 存储在 local.settings.json 中以进行本地调试和测试。

Code and test Azure Functions locally - Local Settings File

当您从 Visual Studio Code 进行部署时,它会将 local.settings.json 文件发布为应用设置,但由于该文件位于您的 .gitignore 中,因此您的 github 远程将无法使用不知道要发布的文件。

FunctionApp 的应用程序设置可以在 FunctionApop 的配置边栏下找到。然后,任何应用设置都可以在您的 FunctionApp 中作为代码中的环境变量进行引用。

Azure Functions Python developer guide - Environment Variables

由于 local.settings.json 文件通常添加到 .gitignore 文件中,因此您需要找到另一种方法来将应用程序设置作为 github 的一部分行动 CI/CD 流程。

您有几个选择。您可以在 github 中创建存储库 secret ,在部署时引用这些 secret ,并编写一个脚本,将 secret 与函数代码同时部署到您的应用程序设置。

Github Actions - Encrypted Secrets

或者,您可以从 key 保管库中提取应用程序设置,这样您就根本不需要管理 secret ,只要它们是静态的而不是动态的,您就可以预先填充 key 保管库并在以下位置使用 key 保管库引用: Azure 函数的应用设置。

Use Key Vault references for App Service and Azure Functions

有一个 github 操作可让您将应用程序设置指定为 JSON,我没有使用过该操作,但看起来它可能正是您正在寻找的内容。

https://github.com/marketplace/actions/azure-app-service-settings

关于python - 使用 GitHub 的 Azure Function CI/CD 部署丢失了 .gitignore 中的重要文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71611522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com