python - python azure函数中的错误404 HEAD依赖
问题描述
我在天蓝色函数的实时遥测中遇到错误。
我的函数有 bin'ds 事件中心触发器作为 IN 和 Blob 作为 OUT。我的意思是,我想读取事件中心中的数据并将其作为文件流式传输到 blob。
我的绑定:
请注意,在 blob 的路径中,我创建了一个 {rand-guid} 参数来创建一个用于使用 guid 调用的文件
{
"scriptFile": "__init__.py",
"bindings": [
{
"type": "eventHubTrigger",
"name": "event",
"direction": "in",
"eventHubName": "myEventHUB",
"connection": "String",
"cardinality": "one",
"consumerGroup": "group1",
"dataType": "binary"
},
{
"type": "blob",
"direction": "out",
"name": "outputBlob",
"path": "mypath/{rand-guid}.json",
"connection": "myStringconnectiontoblob"
}
]
}
我的 main.py 函数是:
import logging
import azure.functions as func
#from azure.storage.blob import BlobServiceClient
def main(event: func.EventHubEvent, outputBlob: func.Out[func.InputStream]):
data = event.get_body().decode('utf-8')
outputBlob.set(data)
outputBlob: func.Out[str]
依赖错误:
我的函数做你的工作,读取事件中心及其在 blob 中的写入数据,但是当我看到实时遥测日志时,我收到一个错误 404 HEAD,所有文件都写在 blob 中。
也许这个错误的发生是因为我在输出路径中设置了 {rand-guid},并且当函数尝试检查文件是否存在时,它不存在。之后,该函数会创建 blob 文件,因为这是在 blob 中正常写入的。
日志线就像
依赖 | 日志级别:INFO | 头 | 404…………
感谢您的评论或回答以帮助我
谢谢
解决方案
我使用我的事件中心和存储帐户测试您的代码,并看到同样的问题。我同意您在此故障排除站点中搜索的考虑。
如果容器或 blob 在此请求之前已被另一个客户端删除,则发生此事件。
如果您在检查容器或 blob 是否存在后使用创建容器或 blob 的 API 调用,则会发生这种情况。CreateIfNotExists API 首先调用 HEAD 以检查容器或 blob 是否存在;如果不存在,则返回 404 错误,然后进行第二次 PUT 调用以写入容器或 blob。
推荐阅读
- string - Rascal:将定义转换为驼峰式
- jfrog - JFROG AQL 通过在每个文件夹中保留最新的 10 个工件来清除存储库的每个文件夹中的工件
- qgis - 如何始终使用空格键移动地图?
- raspberry-pi - 来自 Raspberry PI 的 Gstreamer - 图像质量和帧率不佳
- excel - excel使用公式导致另一个公式
- sql-server - SQLServer 到 Azure Databricks 的转换
- node.js - TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数的类型必须为 > 字符串。收到未定义
- c - 我正在尝试使用 c/c++ 读取、写入和翻译 bmp 图像文件,窗口不支持输出 bmp 文件格式(使用 Visual Studio)
- angular - 将内容从组件移动到子组件后破坏引导布局(Angular v.11)
- php - PHP:使用其他包含文件中的变量来更改 HTML 文本