我正在尝试实现一个docker-compose.yml
文件来为 .net 核心 Azure Durable Function v3 构建一个容器。以下代码片段来自环境文件,即.env
:
AzureWebJobsStorage=MyConnectionString
AzureWebJobsDashboard=MyConnectionString
AzureWebJobsStorageQueue=MyAnotherConnectionString
这是 docker-compose 文件的一部分的样子:
local.mydurablefunction:
image: ${DOCKER_REGISTRY-}myfunction
build:
context: .
dockerfile: src/MyFunction/Dockerfile
ports:
- 34080:34080
environment:
- AzureWebJobsStorageQueue
- AzureWebJobsDashboard
- AzureWebJobsStorageQueue
运行时docker-compose up
我收到以下错误消息:
失败:Host.Startup[515] 在启动操作“d8e39085-bed2-4f30-b80b-37d2fe1b286d”期间发生主机错误。System.InvalidOperationException:找不到用于此绑定的 Azure 存储连接字符串。在 Microsoft.Azure.WebJobs.Extensions.DurableTask.AzureStorageDurabilityProviderFactory.GetAzureStorageOrchestrationServiceSettings(字符串 connectionName,字符串 taskHub
这是函数的样子:
[FunctionName("MyTrigger")]
public async Task RunAsync(
[QueueTrigger("queuename", Connection = "")] string metadataPayload,
[DurableClient] IDurableOrchestrationClient starter,
ILogger log,
CancellationToken cancellationToken)
{
}
在函数体的某个地方,我们正在调用一个持久任务,它看起来像下面的代码片段:
[FunctionName("Orchestrator")]
public async Task RunOrchestratorAsync(
[OrchestrationTrigger] IDurableOrchestrationContext context,
[DurableClient] IDurableOrchestrationClient orchestrationClient,
ILogger log)
{
}
这是服务依赖定义:
{
"dependencies": {
"storage1": {
"type": "storage",
"connectionId": "AzureWebJobsStorageQueue"
}
}
}
这个问题的解决方案是什么,或者这个配置中可能缺少什么?可能是因为无法将环境变量复制到容器中?