在 Docker 容器中运行 Azure Function
Azure Functions (Azure Functions) 是微软的一个无服务器解决方案。在某些情况下,可能需要在 Docker 中运行 Azure Function。本文记录一些开发要点。
运行时镜像 🔗
微软在 Docker Hub 的 microsoft/azure-functions-dotnet 提供了 Azure Function 的运行时镜像。
Durable Function 中的 Task Hub Name 🔗
Durable Functions 是 Azure Functions 的一项特性,它允许你在无服务器计算环境中编写有状态函数。在函数运行时会将状态信息保存在外部存储,比如 Azure Storage Account 中。需要注意的是,这些外部存储资源的名称是根据 Task Hub名称生成的。而在不同的运行环境和不同版本的 Durable 函数中,默认的 Task Hub 名称是不同的。《Task hub names 》 中的表格列出了其中的差异:
Durable extension version | Default task hub name |
---|---|
2.x | When deployed in Azure, the task hub name is derived from the name of the function app. When running outside of Azure, the default task hub name is TestHubName . |
1.x | The default task hub name for all environments is DurableFunctionsHub . |
因此,对于 2.x 版本的 Durable 函数,在 Azure中的Hub名称是根据函数应用生成的;而在 Docker容器运行时,默认的名称就是 TestHubName
。
通常在正式的项目中,对于不同的运行环境(dev
、staging
、prod
等),应该使用不同的存储资源,意味着应该使用不同的Hub名称。为此,根据《Task hub names 》 一节,可通过如下方法修改Hub名称:
- 在
host.json
文件中定义hubName
,其值为%TaskHubName%
。 - 在运行容器时,设置环境变量
TaskHubName
为自定义的名称。
加载中...