【问题标题】:Reading files from Azure blob into Function App in Python将 Azure blob 中的文件读入 Python 中的 Function App
【发布时间】:2021-11-12 20:20:03
【问题描述】:

我正在尝试使用 Function App 从 Python 中的 Azure blob 存储递归地从容器中读取多个相同类型的文件。但是如何使用编排器的 host.json 中的绑定函数来完成,如下所示?应该在本地设置中进行哪些适当的更改,因为我已经提到了 conn 字符串和 blob 的路径已经在同一个地方?

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "context",
      "type": "orchestrationTrigger",
      "direction": "in"
    },
    {
      "name": "inputblob",
      "type": "blob",
      "dataType": "string",
      "path": "test/{file_name}.pdf{queueTrigger}",
      "connection": "CONTAINER_CONN_STR",
      "direction": "in"
    }
  ]
}

*test : 我的目录。

CONTAINER_CONN_STR : 已指定路径

另外,当这样做时,在没有绑定的正常方法中,将文件下载到本地系统时会出错,如下所示:

异常:PermissionError:[Errno 13] 权限被拒绝:'analytics_durable_activity/'

堆栈:_handle__function_load_request 中的文件“C:\Program Files\Microsoft\Azure Functions Core Tools\workers\python\3.8\WINDOWS\X64\azure_functions_worker\dispatcher.py”,第 271 行

func = loader.load_function(

【问题讨论】:

    标签: python-3.x azure-functions local-storage azure-blob-storage permission-denied


    【解决方案1】:

    您可以将触发器的状态保留在实体中,并在每次触发函数时检查相同的状态。该函数仅在状态匹配时才处理文件,即前一个文件已被接收但未处理。

    请参考https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=csharp - 模式#6:聚合器(有状态实体)

    【讨论】:

      【解决方案2】:

      如何使用编排器的 host.json 中的绑定函数来完成,如下所示?应该在本地设置中进行哪些适当的更改

      您使用的配置看起来不错。更多信息可以参考这个Example

      另外,当这样做时,在没有绑定的正常方法中,将文件下载到本地系统时会出错,如下所示:

      您试图打开一个文件,但您的路径是一个文件夹或者您没有所需的权限时,您可能会出现此错误。

      你可以参考这个SO thread 讨论类似的问题。

      参考: Set, View, Change, or Remove Permissions on Files and Folders | Microsoft Docs

      【讨论】:

      • 我同意,我曾经在打开文件时遇到此错误,但这里我没有尝试,它是一个路径,这就是我问的原因。
      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 2021-02-22
      • 2018-04-13
      • 2021-10-05
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2021-05-14
      相关资源
      最近更新 更多