Azure Functions Docker Deployment Linux 辅助角色在资源组中不可用



尝试通过函数应用从 Azure 容器注册表部署 nginix 容器,

得到一个错误,因为,

Linux 辅助角色在资源组中不可用

如何为资源组启用 Linux 工作线程?

用于部署的 Dockerfile,

FROM nginx
COPY dist /usr/share/nginx/html

似乎不能在同一资源组中拥有 Linux 和 Windows 资源

目前有一个关于不混合Windows和 Linux 应用也位于同一资源组中。

https://learn.microsoft.com/en-us/azure/app-service/containers/app-service-linux-intro#limitations

因此,您目前唯一的选择是为linux资源创建一个新的资源组。

[更新 2022-02-16]

现在似乎可以在 Linux 和 Windows 应用服务计划之间共享资源组:https://learn.microsoft.com/en-us/azure/app-service/overview#limitations

[原文]

无法在同一资源组和同一位置创建 Linux 应用服务计划和 Windows 应用服务计划,但可以使用同一资源组并将这两个计划部署在不同的位置。

根据当前限制,对于同一资源组,不能在同一区域中混合使用 Windows 和 Linux 应用。

https://learn.microsoft.com/en-us/azure/app-service/containers/app-service-linux-intro#limitations

虽然我发现如果在创建 linux 应用服务计划之前通过 REST API 或通过 terraform(也使用 REST api(创建了应用服务证书,也可能发生同样的错误。必须先创建 Linux 应用服务计划,然后才能在同一位置创建证书。

在某些情况下,尝试创建函数应用时,可能会收到以下错误...

  • 要在现有资源组中创建函数应用
  • 此资源组已包含尝试创建函数应用的同一区域中的常规(即非动态或高级(Web 应用。如果要在具有相同操作系统的应用服务高级计划的资源组中创建 Azure Functions 高级计划,甚至可能会发生这种情况。
  • 这些非动态或高级资源所在的缩放单元尚不支持此 SKU
  • 你正在尝试在具有任何其他应用服务计划类型的资源组中创建 Linux 消耗应用。

即使在某些情况下,我们也有专门针对一个计划的池。例如,Linux 消耗标记只能运行 Linux 消耗应用,因此无法将 Linux 消耗计划放在与任何其他应用服务计划相同的资源组中。函数本身可以位于同一资源组中,但计划不能位于同一资源组中。

裁判

  • 在现有资源组中创建函数应用
  • 尝试在同一资源组中具有应用服务和 Linux 函数应用时发生"LinuxDynamicWorkersNotAllowedInResourceGroup"错误 #1952

如果在不同区域中为 LINUX 应用创建应用服务计划(尽管资源组可以与 Windows 应用服务计划位于同一区域(,它应该仍可正常工作。

我今天在使用 Bicep 部署时遇到了这个问题。我正在使用"Microsoft.Web/serverfarms@2022-09-01"创建 2 个服务计划,一个用于应用服务,另一个用于函数应用,这两个 Linux 运行时都在同一资源组中运行。

我设法通过更改创作顺序来使其工作。

我首先创建服务计划
  1. ,函数应用的服务计划也在应用服务计划之前创建。
  2. 然后,在创建所需的其他所有内容之后,我在最后创建应用服务,它就可以正常工作。

最新更新