我遇到了 Azure 函数的问题。
我在存储帐户的容器上构建了一个由新文件触发的 Azure 函数。问题是(对我而言)似乎不可能在不指定名称的情况下使用通用文件触发该功能!
我搜索了官方文档,但没有指定如何引用通用文件。预期的行为是当我在特定容器中上传任何文件(具有任何名称)时触发一个函数,例如“container/*”。
这是我的简单功能:
function.json
{ "scriptFile": "__init__.py", "bindings": [ { "name": "inputBlob", "type": "blobTrigger", "direction": "in", "path": "premium-input/*", "connection": "AzureWebJobsStorage" } ] }
init.py
import logging import azure.functions as func def main(inputBlob: func.InputStream): logging.info("START EXECUTION") logging.info(f'NAME {inputBlob.name}') logging.info(f'URI {inputBlob.uri}') logging.info("END EXECUTION")
我已经尝试在 EventGrid 上使用事件,但我更愿意避免使用它......
我尝试将通用文件上传到容器,如下所示,我的函数被触发了。如果您将路径更改premium-input/*为premium-input/{name},它将起作用。
premium-input/*
premium-input/{name}
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"URI: {myblob.uri}\n" f"Blob Size: {myblob.length} bytes")
{ "bindings": [ { "name": "myblob", "type": "blobTrigger", "direction": "in", "path": "demo/{name}", "connection": "your connection string" } ] }
Container-
Logs-