问题标签 [azure-functions-docker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
388 浏览

c# - Azure Functions as Docker Image:找不到文件

所以我不确定如何解释这一点。我正在将 Azure Functions 作为 Docker 映像 (c#) 运行,我有一些文件在 Visual Studio 中运行 Azure 函数时会被复制到 bin 目录中,并且编译后的代码可以很好地提取它们。(非码头工人)

当我创建 Docker 映像并启动它时,文件又是我认为它们应该在的位置(我进入了 Docker 快照 /home/site/wwwroot/bin/)

但是,Azure 函数根目录是 Content root path: / (Environment.CurrentDirectory) 我不知道它在哪里。

我做了一个函数来列出 / 中的所有文件,它是一个 .dockerenv 文件。

我在 Azure 函数中将路径硬编码到我想要的文件 /home/site/wwwroot/ 等以及我正在使用的库 sh*ts abrick

DockerFile

我按照本教程 https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image?tabs=bash%2Cportal&pivots=programming-language-csharp

默认情况下,容器的根目录在哪里? .dockerenv 文件在哪里?

0 投票
1 回答
282 浏览

azure - 有没有办法为在 Azure 函数中执行的 docker run 命令指定自定义参数

我正在尝试将自定义映像部署到 azure 函数,并且我需要修改/etc/hosts容器内的文件。

我试过--add-host在 docker build 阶段给出论据,但没有帮助。由于它是一个天蓝色的功能,它会自行运行 docker run 命令,无需人工干预。

所以,只是想知道是否有可能--add-host通过 Azure 函数的配置向 docker run 命令添加参数。

0 投票
1 回答
36 浏览

azure - 将明确的 Dockerfile 传递给 func kubernetes deploy

有没有办法将 Dockerfile 显式传递给func kubernetes deploy命令?(像 docker build 命令中的 -f 一样) https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda

0 投票
1 回答
335 浏览

azure - 如何从 Azure 函数应用部署 docker 容器?

我想以编程方式从 azure 函数应用程序(例如从 cosmodb 触发器)中的现有图像按需部署一个新的 docker 容器。有人可以提供一些指导吗?我很难找到任何文档,因为我的所有搜索都会在容器中运行一个 azure 函数,这不是我想要做的。

在我的用例中编辑进一步说明 ,我在函数应用程序中使用 cosmosdb 触发器。当该 cosmosdb 集合获得新记录时,我从该记录中提取一个字符串,然后将该字符串作为运行参数传递,以从现有 ACR 映像动态创建一个新的 docker 容器。

我想我必须在函数应用程序中使用 powershell 来做到这一点,我希望会有一个 C# 解决方案。

0 投票
0 回答
245 浏览

docker-compose - 无法在 docker 中运行 .net 核心应用 Azure Durable Functions v3

我正在尝试实现一个docker-compose.yml文件来为 .net 核心 Azure Durable Function v3 构建一个容器。以下代码片段来自环境文件,即.env

这是 docker-compose 文件的一部分的样子:

运行时docker-compose up我收到以下错误消息:

失败:Host.Startup[515] 在启动操作“d8e39085-bed2-4f30-b80b-37d2fe1b286d”期间发生主机错误。System.InvalidOperationException:找不到用于此绑定的 Azure 存储连接字符串。在 Microsoft.Azure.WebJobs.Extensions.DurableTask.AzureStorageDurabilityProviderFactory.GetAzureStorageOrchestrationServiceSettings(字符串 connectionName,字符串 taskHub

这是函数的样子:

在函数体的某个地方,我们正在调用一个持久任务,它看起来像下面的代码片段:

这是服务依赖定义:

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

0 投票
1 回答
64 浏览

azure-functions - 在 AKS 中运行的 Azure 函数在 http 触发函数的查询字符串参数上引发 500

我有一个 azure 函数应用程序,我已经容器化并在 AKS 中运行。我的一个 http 端点有一个查询字符串参数code=。当我调用该端点时,我立即收到 500 响应。为了排除代码中的任何内容,我只返回 400 以验证我正在执行代码。奇怪的是,如果我将查询字符串参数更改为其他任何参数code,例如codeg,我会得到正确的 400 响应。

我已经启用了调试日志记录,并且我得到了一个路由匹配,所以我知道调用正在到达函数应用程序。但是,我没有得到其他日志来指示可能失败的原因。

0 投票
1 回答
114 浏览

azure - 当“代码”是查询字符串中的参数时,为什么匿名 httptrigger azure 函数会引发 500 内部服务器错误?

我有一个在 Kubernetes 的容器中运行的函数应用程序。我的端点之一是具有匿名访问权限的 httptrigger。但是,查询字符串包含一个参数code(由无法控制其名称的第 3 方供应商提供),该参数会导致应用程序抛出 500 错误,而没有日志表明发生了什么。奇怪的是,如果我将相同的功能部署到 Azure Function App,一切都会按预期工作。所以我的问题是需要设置哪些配置或环境变量才能使其正常运行?

与此相关的后续问题 -在 AKS 中运行的 Azure 函数在 http 触发器函数的查询字符串参数上抛出 500

0 投票
0 回答
31 浏览

docker - NET 5.0 函数 v3 - 在 Docker 上运行测试时无法覆盖授权级别

我在这里提出了一个问题https://github.com/Azure/azure-functions-dotnet-worker/issues/722但看起来没有引起任何人的注意,所以我在这里尝试。

我们将函数从 core3.1 迁移到 5.0,最终在 Docker 上运行测试(在本地或 CI/CD 管道上运行)时出现问题,而函数托管在 Azure Function App (Linux) 上用于生产,一切都很好。

函数声明:

[Function("workingAt")] public async Task<HttpResponseData> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestData req, FunctionContext executionContext)

授权级别设置为功能,在它之上我们有一个 APIM 负责。

问题是当我们在 docker 上运行测试时,所有调用都会导致 401,并且适用于 core3.1 版本的技巧不再有任何效果。

以前,我们使用它来覆盖function.json文件中的设置Dockerfile

RUN find . -type f -name "function.json" -exec sed -i 's/"authLevel": "function"/"authLevel": "anonymous"/g' {} +

已经尝试过使用它,functions.metadata但这里没有运气。

我们可以在授权级别参数上使用预处理器指令,但它会产生(不太可能)不必要的风险,即有人会错误地将函数部署到具有匿名授权级别的 Azure。

还有其他方法可以实现吗?

干杯