gpt4 book ai didi

python - 无法使用 BlobTrigger 读取内容/数据 (azure.functions) [Python]

转载 作者:行者123 更新时间:2023-12-03 03:44:27 25 4
gpt4 key购买 nike

我在使用 Python 和 BlobTrigger 读取内容/数据时遇到问题。我使用本地环境并遵循文档( https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=python )。当我将文件上传到本地 blob 模拟器时,该函数正在监听并且也成功触发。我还可以获取变量中的文件路径/文件名,但无法读取上传文件的内容。

当我尝试获取内容时,它总是显示空字符串或数组。

这是我的functions.json 文件:

{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "log/SystemLog/{name}",
"connection": ""
}
]
}

这是我的 init.py 文件:导入日志记录导入 azure.functions 作为 func

def main(myblob: func.InputStream):    

print(myblob.name)
print(myblob.length)
print(myblob.readlines())

这是在控制台中打印的内容:

[2021-10-29T07:27:25.053Z] Host lock lease acquired by instance ID '000000000000000000000000F86KCB51'.
[2021-10-29T07:27:25.124Z] Worker process started and initialized.
[2021-10-29T07:27:46.941Z] Executing 'Functions.BlobTriggerLocalTest' (Reason='New blob detected: log/SystemLog/testfile.txt', Id=3981bd58-accb-4c9c-b3e4-fe33b1a74522)
[2021-10-29T07:27:46.948Z] Trigger Details: MessageId: 7c575bad-88b7-46d4-b5bf-67b90fe0ab4d, DequeueCount: 1, InsertionTime: 2021-10-29T07:27:46.000+00:00, BlobCreated: 2021-10-29T07:27:43.000+00:00, BlobLastModified: 2021-10-29T07:27:43.000+00:00
[2021-10-29T07:27:47.032Z] log/SystemLog/testfile.txt
[2021-10-29T07:27:47.037Z] None
[2021-10-29T07:27:47.042Z] []
[2021-10-29T07:27:47.068Z] Executed 'Functions.BlobTriggerLocalTest' (Succeeded, Id=3981bd58-accb-4c9c-b3e4-fe33b1a74522, Duration=204ms)

我尝试了一些解决方案来解决这个问题。

第一件事是配合文档 https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-input?tabs=python 。但对我来说,functions.json 文件中的更改并不完全清楚。我尝试输入

{
"name": "inputblob",
"type": "blob",
"dataType": "binary",
"path": "log/SystemLog/{name}",
"connection": "",
"direction": "in"
},

在functions.json文件中并将inputblob作为第二个参数添加到main方法中,但len(inputblob)也打印0。

我想我还可以使用并从 azure.storage.blob 导入 BlobServiceClient。但我猜 BlobServiceClient 需要一个单独的连接字符串,我想避免这种情况。

最佳答案

解决办法很简单:不要使用 Visual Studio Code 作为文件资源管理器通过拖放进行上传。

本地环境的文档引导我使用 VS Code 作为本地 blob 的文件资源管理器。将文件从桌面上传到 blob 会导致文件内容丢失。文件以正确的文件名上传,但内部是空的。使用 MS Storage Explorer 可以解决该问题。

关于python - 无法使用 BlobTrigger 读取内容/数据 (azure.functions) [Python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69765748/

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