gpt4 book ai didi

python - 将多个 blob 输入到 azure 函数 python 中

转载 作者:行者123 更新时间:2023-12-04 08:07:58 24 4
gpt4 key购买 nike

我正在使用 python 来实现 Azure 函数。我正在尝试读取两个 blob,一个是触发的,另一个是静态 blob。

当我读入它们时,两个 blob 都指向触发的 blob(URI 相同)。如何正确输入和使用两个blob?

我的绑定(bind)如下所示:

{
"name": "techdatablob",
"type": "blobTrigger",
"direction": "in",
"path": "path1/{name}",
"connection": "example"
},
{
"name": "crmdatablob",
"type": "blob",
"direction": "in",
"path": "path2/data.xlsx",
"connection": "example"
},
{
"name": "outputblob",
"type": "blob",
"direction": "out",
"path": "path3/out.xlsx",
"connection": "example"
}

init.py 文件开头为:

def main(techdatablob: func.InputStream, crmdatablob: func.InputStream, outputblob: func.Out[func.InputStream]):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {techdatablob.name}\n"
f"Blob Size: {techdatablob.length} bytes")

print(techdatablob.uri)
print(crmdatablob.uri)

最佳答案

When I read them in, both blobs point to the triggered blob (URI isthe same). How can input and use two blobs correctly?

事实上,您已经输入了多个 blob,问题来自于 azure 函数 blob 绑定(bind)元数据不是来自函数主机,因此 blob 名称、blob 长度、uri 等内容无法获取正确的值。但实际上他们的数据是不同的(对象也不同)。

您可以执行如下操作来测试:

import logging

import azure.functions as func


def main(techdatablob: func.InputStream, crmdatablob: func.InputStream) -> None:
logging.info("-----"+techdatablob.read().decode('utf-8'))
logging.info("-----"+crmdatablob.read().decode('utf-8'))

检查此错误页面:

https://github.com/Azure/azure-functions-python-worker/issues/576

我觉得问题不在你这边,是功能设计的问题。使用storage sdk获取元数据应该没有问题。

关于python - 将多个 blob 输入到 azure 函数 python 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66129665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com