部署到 Kubernetes 时如何包含 Azure Function 机密?

How to include Azure Function secrets when deploying to Kubernetes?

我已经使用 ServiceBusTrigger 构建了一个 .NET Core Azure Function。一旦适当的应用程序设置(如服务总线连接字符串)部署在常规应用程序服务计划中时,该函数工作正常。

但是,我更愿意将函数作为 Docker 容器托管在 Azure Kubernetes 服务 (AKS) 上。我安装了 AKS 并且有许多 .NET Core Docker 容器 运行 在那里很好,包括 TimerTriggers 上的一些 Azure 函数。

当我使用 ServiceBusTrigger 部署函数时,它无法正确调整,当我访问函数 IP 地址时,我得到 "Function host is not running."。我认为这是因为未找到应用程序设置。

问题是在 Docker/Kubernetes 环境中托管时,我不知道如何包含它们。我已经尝试在 Docker 文件中包含适当的 ENV 条目,但是在我成功 运行 func deploy 之后,我无法在通过 Kubernetes 仪表板查看的部署 YAML 中找到相应的值来自 PowerShell。

大多数 Microsoft 文档都解决了 TimerTrigger 和 HttpTrigger 的情况,但我在使用 Docker/Kubernetes.

时几乎找不到关于 ServiceBusTrigger 的内容

那么,如何在我的部署中包含适当的应用程序设置?

从这个博客:Playing with Azure Functions kubernetes integration,你可以找到关于添加环境变量的描述。

在 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

然后应用它,它会起作用。