将多个blob输入azure函数python

将多个blob输入azure函数python,python,azure,azure-functions,blob,Python,Azure,Azure Functions,Blob,我正在python中为Azure函数工作。我试图读入两个blob,一个是触发的,一个是静态的 当我读入它们时,两个blob都指向触发的blob(URI相同)。如何正确输入和使用两个blob 我的绑定看起来像: { "name": "techdatablob", "type": "blobTrigger", "direction": "in",

我正在python中为Azure函数工作。我试图读入两个blob,一个是触发的,一个是静态的

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

我的绑定看起来像:

{
      "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)
当我读入它们时,两个blob都指向触发的blob(URI是 相同)。如何正确输入和使用两个blob

事实上,您已经输入了多个blob,问题来自azure函数blob绑定元数据不是来自函数主机,因此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'))
检查此错误页:


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

这应该可以正常工作,您会遇到任何错误吗?我不会遇到任何错误,除了以后遇到的错误,因为文件是相同的。请注意,我只在本地进行了测试,当要求提供一个主体时,我得到了一个已知文件的路径,例如“path1/data.xlsx”,它可以只拉入该文件。您可以显示代码结构吗?我在init.py文件示例中添加了更多代码。这里有一些定义和一些导入,但除此之外,仅此而已。我认为对于元数据,python的azure绑定目前仍然存在一些问题。事实上,您输入的确实是两个不同的blob对象,但输入部分无法获取uri等元数据值。谢谢bowman!这是有道理的-尽管奇怪的是他们还没有解决这个问题。。。然后我尝试将文件读入pd.read_excel,解码('utf-8')给了我一个错误:
UnicodeDecodeError:'utf-8'编解码器无法解码第16位的字节0xc3:无效的延续字节
这是一个blob问题,还是数据传输的问题?@Dave你在使用panda吗?我不确定,看起来解码方式是错误的(只是猜测),你可以用谷歌搜索它或者问一个问题。是的,通过pandas使用pd.read_excel()。好的,不用担心,谢谢你的帮助!!