部署时BlobTrigger使Azure Functions应用程序崩溃

时间:2020-08-11 21:37:26

标签: azure azure-functions azure-storage-blobs

我用VS代码中的Python设置了Azure Functions应用。创建了几个http触发器之后,我想创建一个名为xml-update的Blobtrigger。在我尝试部署它之前,所有方法都运行良好。功能应用返回404。我该如何调试?

我在Azure存储中有一个名为xml-feed的Blob容器,其中一个名为jobs.json的blob。当我使用这些绑定(和样板功能代码)部署Function App时...

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "myblob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "xml-feed/jobs.json",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

...该应用程序专门返回404。

当我在本地开发BlobTrigger函数时,我能够进行读取和写入而没有任何问题。 (到实际的云存储中,而不是本地仿真。)Function App日志显示以下错误:

resource name contains invalid characters

下面的function.json恢复了Function App的功能,尽管此功能已变得无用。

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "myblob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

如果path不是空字符串,则出现问题。 (即使它是一个普通的字符串,也让我对invalid character错误感到怀疑。)我无法进一步挖掘更多信息。我在“应用程序设置”中检查了连接字符串,弄乱了存储权限,但是找不到原因。

编辑:样板功能代码:

import logging

import azure.functions as func

def main(myblob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")

1 个答案:

答案 0 :(得分:0)

我配置了一个全新的Function App,并部署了相同的代码。像魅力一样工作。我确定了这两个功能应用程序之间的区别:一个功能应用程序链接到自定义域,而另一个则没有。删除自定义域可以解决此问题。我将对此提出另一个问题。