0

我正在尝试实现一个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"
    }
  }
}

这个问题的解决方案是什么,或者这个配置中可能缺少什么?可能是因为无法将环境变量复制到容器中?

4

0 回答 0