Azure函数Python-错误“未注册绑定类型'blobTrigger'”

时间:2019-05-31 10:25:23

标签: python azure-functions azure-blob-storage

我试图在Mac上本地运行Azure函数,并出现以下错误:The binding type(s) 'blobTrigger' are not registered. Please ensure the type is correct and the binding extension is installed.

我正在使用Python 3.6.8,并且已经使用自制软件(azure-functions-core-tools)安装了brew tap azure/functions; brew install azure-functions-core-tools

使用预期的配置设置我的local.settings.json文件,因此功能应侦听Azure中托管的正确存储容器。

我确定自上周以来我没有更改任何代码或配置文件。

host.json文件包含:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[1.*, 2.0.0)"
  }
}

function.json文件包含:

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "xmlblob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "<directory>/{name}",
      "connection": "AzureStorageAccountConnectionString"
    }
  ]
}

requirements.txt文件包含:

azure-cosmos==3.1.0
azure-functions-worker==1.0.0b6
azure-storage==0.36.0
azure-storage-blob==2.0.1
xmljson==0.2.0
xmlschema==1.0.11

然后我在终端中运行以下命令:

1) pip install -r requirements.txt
2) source .env/bin/activate
3) func host start

然后我得到以下错误:

<Application name>: The binding type(s) 'blobTrigger' are not registered. Please ensure the type is correct and the binding extension is installed.

3 个答案:

答案 0 :(得分:1)

您从外观上所做的一切都正确,但是您需要在本地安装dotnet核心框架和运行时才能执行触发器。

对于在Ubuntu上的我,我关注了this guide。安装后,我可以在本地触发Blob函数。

对于Mac,我会take a look here关于安装dotnot core。

答案 1 :(得分:0)

确保已安装Microsoft.Azure.WebJobs.Extensions.Storage nuget软件包。

enter image description here

如果从portal进行操作,则提示安装扩展。

enter image description here

答案 2 :(得分:0)

我收到此错误,是因为它下载并缓存的捆绑软件有问题。除了错误消息外,日志中较早的地方还警告您无法加载扩展捆绑包,而日志较早的几行则显示了从中加载捆绑包的路径,例如C:\ Users \ AppData \ Local \ Temp \ Functions \ ExtensionBundles \ Microsoft.Azure.Functions.ExtensionBundle。我删除了ExtensionBundles文件夹,然后重新下载。