docker - 部署到 Kubernetes 时如何包含 Azure Function Secret?
问题描述
我使用 ServiceBusTrigger 构建了一个 .NET Core Azure 函数。一旦适当的应用程序设置(例如服务总线连接字符串)部署在常规应用服务计划中,该功能就可以正常工作。
但是,我更愿意将函数作为 Docker 容器托管在 Azure Kubernetes 服务 (AKS) 上。我有 AKS 设置,并且有许多 .NET Core Docker 容器在那里运行良好,包括 TimerTriggers 上的一些 Azure 函数。
当我使用 ServiceBusTrigger 部署该功能时,它无法正确调整并且我得到“功能主机未运行”。当我访问功能IP地址时。我相信这是因为找不到应用程序设置。
问题是我不知道在 Docker/Kubernetes 环境中托管时如何包含它们。func deploy
我尝试在 Docker 文件中包含适当的 ENV 条目,但是在我从 PowerShell成功运行后,我无法在通过 Kubernetes 仪表板查看的部署 YAML 中找到相应的值。
大多数 Microsoft 文档都涉及 TimerTrigger 和 HttpTrigger 案例,但在使用 Docker/Kubernetes 时,我在 ServiceBusTrigger 上几乎找不到。
那么,如何在我的部署中包含适当的应用程序设置?
解决方案
来自这个博客:<a href="https://medium.com/@tsuyoshiushio/playing-with-azure-functions-kubernetes-integration-9048908bfc2a" rel="nofollow noreferrer">玩转 Azure Functions kubernetes 集成,你可以找到关于添加环境变量的描述。
在 deployment.yml 中,添加 env(如AzureWebJobsStorage
作为环境变量)。
containers:
- image: tsuyoshiushio/queuefunction-azurefunc
imagePullPolicy: Always
name: queuefunction-deployment
env:
- name: AzureWebJobsStorage
value: YOUR_STORAGE_ACCOUNT_CONNECTION_STRING_HERE
ports:
- containerPort: 80
protocol: TCP
然后应用它,它会起作用。
推荐阅读
- rust - 为什么Serde不能用于Libra的加密目的的序列化和反序列化?
- ios - 有没有办法在使用 UIDocumentPickerViewController 时保留原始拾取文件的大小写?
- javascript - 此 addRole 命令无法在 discord.js 的控制台上正常工作
- verilog - 如何在verilog中切换模块?
- unity3d - 如何在 Unity 中集成华为移动服务(HMS)?
- python - 如何通过 dm 向作者发送消息?- discord.py 重写
- angular - Web 请求发生错误时,.catch 未激活
- swift - 如何通过按表格视图外的按钮清空表格视图内的单元格数据?
- python - 拆分日期时间索引以识别连续时间戳(Python)
- python-3.x - 在指定日期范围内移动聚合