当前位置: 首页 > 知识库问答 >
问题:

Azure函数blob触发器blob paratemer错误

斜浩穰
2023-03-14

我使用blob触发器读取blob内容,作为pandas DF进行处理,并将blob附加到我使用的Azure SQL server。

blob触发器没有按预期工作,因此我将main函数中的所有代码都定义为:

def main(myblob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")
    file = re.sub(r'^(.*?)\/','',myblob.name)
    if file not in processedfiles:
        stream = BytesIO((myblob.read()))
        stream.seek(0)

但是,我得到了以下错误:

Exception: FunctionLoadError: cannot load the BlobFileTrigger function: 
binding myblob has invalid non-type annotation <sqlalchemy.sql.functions._FunctionGenerator object at 0x7faa340f6a00>

有人可以帮助我找到此问题的原因吗?

function.json的配置如下:

{
  "scriptFile": "__init__.py",
  "disabled": false,
  "bindings": [
      {
          "name": "myblob",
          "type": "blobTrigger",
          "direction": "in",
          "path": "input/{name}",
          "connection":"StorageConnection"
      }
  ]
}

共有1个答案

柯昱
2023-03-14

>

  • 配置的function.json文件很好。

    如果您获取的是空字节字符串,请先使用查找(0)方法,然后使用Read()fromstream

    确保if条件在Processedfile上是正确的,因为如果在Processedfile中没有找到任何文件,那么只有您的案例将执行。

    (myblob.read ()))

    参考:Python io的read()和getvalue()方法。字节IO

    Python中使用Blobtrigger的Azure函数

  •  类似资料:
    • 如果你使用blob存储触发器阅读Azure WebJobs上的留档,它们会提到这不是很可靠: WebJobs SDK扫描日志文件以查看新的或更改的blob。这个过程不是实时的;在创建blob后的几分钟或更长时间内,函数可能不会被触发。此外,存储日志是在“尽力而为”的基础上创建的;无法保证所有事件都将被捕获。在某些情况下,日志可能会丢失。如果您的应用程序无法接受blob触发器的速度和可靠性限制,建议

    • 我是Azure Function应用程序中blob触发器的新手,需要一些帮助。我正在努力寻找有关如何重命名触发该函数的blob的资源。 我有一个函数应用程序,当一个新的blob被上传到容器时触发,文件被处理,我需要一种方法来将其“标记”为已处理,因此我想重命名blob。 这是我的职责: 我该如何重命名该文件?在这种情况下有可能吗?

    • Azure函数存储帐户Blob容器触发器 在我们的一个用例中,我正在为具有以下条件的存储帐户容器中的任何活动寻找Azure函数触发器 < li >具有特定命名约定的容器(名称如xxxx-input) < li >它应该自动检测是否创建了新的容器(具有特定的命名约定) < li>

    • 我遇到的情况是,Blob可能在第一次处理时失败,但可能在后续执行中工作。 我遇到的问题是关于监控真正的失败,目前第一次失败将抛出一个异常,该异常被记录并发出警报,但如果第一次重试成功完成,那么根据早期警报就没有什么可做的了。 是否有办法查看已发生的重试次数,以便我只能在不再重试时发出警报?

    • 我将JSON文档上传到Azure Blob容器中,并编写了Azure Python函数将JSON写入CosmosDB。触发工作正常,但我出错了。下面是Python函数: 以下是function.json文件: 这是我在Azure门户中看到的错误: 结果:失败异常:函数加载错误:无法加载JsonBobTrigger1函数:以下参数在Python中声明,但在function.json中没有声明:{'d

    • 有没有人知道某种方法可以触发具有 Blob 触发器的 Azure 函数?无论是通过API还是使用“测试/运行”功能。 情况是,我需要在测试目的中这样做。目前我看到的是,可以在blob存储中提供要触发的文件的名称。但这是无用的,因为无论如何,将文件放在那里都会触发功能。我想做的是为文件的内容而不是名称提供功能,以避免不必要的操作。 不幸的是,微软在所有相关主题上的留档很差,但这个没有。在这个gith