选择新标签时基于 Docker 容器的 Azure 函数不会更新

Nie*_*ink 3 docker azure-functions

我托管了一个基于 Docker 容器映像的 Azure 函数。现在我已经上传了容器的新版本,并在“容器设置”页面中选择了新标签并保存了这些更改。

问题是天蓝色函数不会更新并继续使用我的容器之前选择的标签。即使重新启动/停止启动也不会强制刷新容器实例。

知道为什么会发生这种情况,还是我需要扔掉我的天蓝色功能并部署一个全新的功能?

Ank*_*mar 5

您的 Azure Function 与 Docker 映像(带有标签)绑定,因此如果您创建了新标签,则必须手动更新函数应用配置以指向新标签。

如果您有 Azure CLI(或访问 shell.azure.com),则可以更新函数应用程序所指向的映像 -- az functionapp config container set -n <name> -g <resource-group> --docker-custom-image-name <image-name>,更多信息(如果您的映像位于私有注册表中) -- https://learn .microsoft.com/en-us/cli/azure/functionapp/config/container?view=azure-cli-latest#az-functionapp-config-container-set

将来避免这种情况的一种方法是使用“最新”标签或类似标签,并将其指向您的天蓝色功能。然后,每次更新图像时,请务必将“最新”标签指向新图像。这样您的函数应用程序将始终指向最新的图像。

  • 好奇的想到这里。如果您使用“最新”标记最新映像,以便 docker 推送替换也具有“最新”标记的已推送映像,那么“az functionapp restart”足以让函数应用开始使用新映像吗?我相信当函数应用程序重新启动时,函数应用程序将发生 docker pull 。 (3认同)
  • 我很确定大多数人建议不要使用最新的标签,因为缓存问题。 (2认同)