如何在部署到Kubernetes时包含Azure功能机密?

问题描述 投票:0回答:1

我使用ServiceBusTrigger构建了一个.NET Core Azure函数。一旦适当的应用程序设置(例如Service Bus连接字符串)部署在常规App Service计划中,该功能就可以正常工作。

但是,我更愿意将该功能作为Azure Kubernetes Service(AKS)上的Docker容器托管。我有AKS设置并且有许多.NET Core Docker容器在那里运行良好,包括TimerTriggers上的一些Azure功能。

当我使用ServiceBusTrigger部署该函数时,它无法正确调整并且我得到“函数主机未运行”。当我访问功能IP地址。我相信这是因为找不到应用程序设置。

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

大多数Microsoft文档都解决了TimerTrigger和HttpTrigger的问题,但在使用Docker / Kubernetes时,我几乎找不到ServiceBusTrigger。

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

docker kubernetes .net-core azure-functions azure-aks
1个回答
1
投票

从这个博客: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

然后应用它,它会工作。

© www.soinside.com 2019 - 2024. All rights reserved.