[英]Azure Function in Python that is on a time trigger get zip file from a url, unzip, then output file to blob container in Azure storage
[英]How get multiple output from Azure Function Blob Trigger using python?
我在使用 python 为 Azure 中的 blobtrigger 案例定义多个输出时遇到问题。 如何将 WhileLoop 的所有尝试设置为 Outputblob? 现在,我只得到最后一个实体(替换以前的实体)。 我把代码 --init--.py:
import logging
import json
import azure.functions as func
from urllib.request import urlopen
#from azure.storage import blob
def main(inputblob: func.InputStream,
outputblob: func.Out[func.InputStream]):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {inputblob.name}\n"
f"Blob Size: {inputblob.length} bytes")
blob= inputblob.read()
blob_invoices= json.loads(blob)
Number_of_Invoices=int(len(blob_invoices))
j=0
while j < Number_of_Invoices:
Invoice_url= blob_invoices[j]["invoiceFile"]['url']
invoice_opening= urlopen(Invoice_url)
invoice_content= invoice_opening.read()
outputblob.set(invoice_content)
if __name__ == "__main__":
main()
和函数.json:
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "inputblob",
"type": "blobTrigger",
"direction": "in",
"path": "data4test1/{name}.json",
"connection": "data4test_STORAGE"
},
{
"name": "outputblob",
"type": "blob",
"direction": "out",
"path": "data4test2/{name}.xml",
"connection": "data4test_STORAGE"
}
],
"disabled": false
下面的 init 示例代码将帮助您使用 python 从 Azure 函数 blob 触发器设置多个输出绑定:
import logging
import azure.functions as func
def main(inputblob: func.InputStream,
outputblob1: func.Out[func.InputStream],
outputblob2: func.Out[func.InputStream],
outputblob3: func.Out[func.InputStream]):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {inputblob.name}\n"
f"Blob Size: {inputblob.length} bytes")
outputblob1.set(inputblob)
outputblob2.set(inputblob)
outputblob3.set(inputblob)
function.json 文件:
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "inputblob",
"type": "blobTrigger",
"direction": "in",
"dataType": "binary",
"path": "blobcontainer/{name}",
"connection": "AzureWebJobsStorage"
},
{
"name": "outputblob1",
"type": "blob",
"path": "uploadblobcontainer/{blobtrigger}-first",
"dataType": "binary",
"connection": "AzureWebJobsStorage",
"direction": "out"
},
{
"name": "outputblob2",
"type": "blob",
"path": "uploadblobcontainer/{blobtrigger}-second",
"dataType": "binary",
"connection": "AzureWebJobsStorage",
"direction": "out"
},
{
"name": "outputblob3",
"type": "blob",
"path": "uploadblobcontainer/{blobtrigger}-third",
"dataType": "binary",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.