gpt4 book ai didi

python - Azure 函数 - Python - ServiceBus 输出绑定(bind) - 设置自定义属性

转载 作者:太空狗 更新时间:2023-10-30 01:11:54 25 4
gpt4 key购买 nike

我有一个用 Python 编写的 Azure 函数,它具有服务总线(主题)输出绑定(bind)。该函数由另一个队列触发,我们处理来自 blobl 存储的一些文件,然后将另一条消息放入队列中。

我的 function.json 文件如下所示:

{
"bindings": [
{
"type": "serviceBus",
"connection": "Omnibus_Input_Send_Servicebus",
"name": "outputMessage",
"queueName": "validation-output-queue",
"accessRights": "send",
"direction": "out"
}
],
"disabled": false
}

在我的函数中,我可以像这样向另一个队列发送消息:

with open(os.environ['outputMessage'], 'w') as output_message:
output_message.write('This is my output test message !')

工作正常。现在我想向某个主题发送消息。我创建了一个订阅 SQLFilter我需要将一些自定义属性设置为 BrokeredMessage .

来自azure sdk for python ,我发现我可以添加这样的自定义属性(我已经使用 pip 安装了 azure 模块):

from azure.servicebus import Message
sent_msg = Message(b'This is the third message',
broker_properties={'Label': 'M3'},
custom_properties={'Priority': 'Medium',
'Customer': 'ABC'}
)

我的新 function.json 文件如下所示:

{
"bindings": [
{
"type": "serviceBus",
"connection": "Omnibus_Input_Send_Servicebus",
"name": "outputMessage",
"topicName": "validation-output-topic",
"accessRights": "send",
"direction": "out"
}
],
"disabled": false
}

我已经这样修改了我的函数:

from azure.servicebus import Message
sent_msg = Message(b'This is the third message',
broker_properties={'Label': 'M3'},
custom_properties={'Priority': 'Medium',
'Customer': 'ABC'}
)

with open(os.environ['outputMessage'], 'w') as output_message:
output_message.write(sent_msg)

当我运行该函数时,出现此异常:

TypeError: expected a string or other character buffer object

我尝试使用 buffermemoryview函数但仍然得到另一个异常:

TypeError: cannot make memory view because object does not have the buffer interface

我想知道实际绑定(bind)是否支持 BrokeredMessage 以及如何处理它?<​​/p>

最佳答案

Python(和其他脚本语言)的 ServiceBus 输出绑定(bind)仅支持简单的字符串映射,其中您指定的字符串将成为幕后创建的 BrokeredMessage 的内容。要设置任何扩展属性或执行任何更复杂的操作,您必须在函数中自行使用 Azure Python SDK。

关于python - Azure 函数 - Python - ServiceBus 输出绑定(bind) - 设置自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46657209/

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