【问题标题】:Azure storage emulator does not work with azure function docker runAzure 存储模拟器不适用于 azure 函数 docker run
【发布时间】:2020-05-19 13:52:15
【问题描述】:

我正在尝试使用 Docker 运行我的计时器触发天蓝色函数示例。它在调试和发布模式下都可以在 Visual Studio 中正常工作。但是当使用docker时

docker run -d -p 8080:80 testdockercors

应用程序启动并显示以下消息,但我的计时器触发 azure 功能未运行。

Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down..

但从 Visual Studio 运行时,计时器触发器工作正常。请找到我的 docker 文件。

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["Testdockercors/Testdockercors.csproj", "Testdockercors/"]
RUN dotnet restore "Testdockercors/Testdockercors.csproj"
COPY . .
WORKDIR "/src/Testdockercors"
RUN dotnet build "Testdockercors.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Testdockercors.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENV AzureWebJobsScriptRoot=/app
ENV AzureWebJobsStorage="UseDevelopmentStorage=true"

当我将环境 AzureWebJobsStorage 值更改为现有的 azure 存储连接字符串时,它也可以在 docker 中使用。但我想使用 docker 中的存储,而不是 azure 中可用的存储。

【问题讨论】:

    标签: azure docker azure-functions azure-function-app azure-storage-emulator


    【解决方案1】:

    我通过如下更改 AzureWebJobsStorage 的值解决了这个问题,将 DevelopmentStorageProxyUri=http://host.docker.internal 附加到环境中就可以了。

    ENV AzureWebJobsStorage="UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://host.docker.internal"
    

    您可以阅读更多关于@https://www.maneu.net/blog/use-local-storage-emulator-remote-container/的信息

    这在 Linux 虚拟机中不起作用

    【讨论】:

      【解决方案2】:

      我可以确认使用:

      ENV AzureWebJobsStorage="UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://host.docker.internal"
      

      也适用于 Python 运行时(尤其是 mcr.microsoft.com/azure-functions/python:3.0-python3.7)。

      实际上,这会解析为在运行 docker 运行时的主机上运行的 azurite 端点(在我的情况下,它是 macOS)。请注意,这并不意味着如果您在容器中运行azurite,它就会起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-07
        • 1970-01-01
        • 2020-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-25
        相关资源
        最近更新 更多