当尝试调用包装在 Docker 容器中的 Azure 函数时,我得到的只是内部服务器错误 500。
这是我创建容器的过程:
mkdir docker-function
cd docker function
func init --docker
func new (I then selected Http Trigger)
docker build -t hello-docker-function:latest .
docker tag hello-docker-function myaccount/hello-docker-function
docker push myaccount/hello-docker-function:latest
然后,我在美国中部创建了一个 Azure Function,并选择了 Docker(在 Linux 上)。
然后,我单击配置容器设置
。
作为图像源
,我选择了Docker Hub
作为存储库访问
,我选择了公共(public)
作为 Image
我指定了 myaccount/hello-docker-function
我没有指定任何类型的启动文件
当调用该函数时(通过其 URL 或通过 Run
按钮),我得到的只是内部服务器错误 500。
我还尝试使用 Azure 容器注册表 - 相同的结果。
有什么想法吗?
最佳答案
我尝试重现该问题,并且还收到了 500 响应代码。
看来问题与两件事有关:必须配置或禁用的身份验证以及必须指定的工作运行时。
有两件事让它对我有用:
在
function.json
中将authLevel
设置为anonymous
。 如果您想启用身份验证,这个问题可能会有所帮助:Http Trigger Azure Function in Docker with non anonymous authLevel在 Azure Web UI FunctionApp 配置页面中,将
FUNCTIONS_WORKER_RUNTIME
设置为node
(我使用了 nodeJS)。
关于azure - 尝试调用包装在 Docker 容器中的 Azure Function 时出现内部服务器错误 (500),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58903934/