gpt4 book ai didi

c# - Azure 函数 : Queue Trigger is expecting Base-64 messages and doesn't process them correctly

转载 作者:行者123 更新时间:2023-12-03 09:49:24 24 4
gpt4 key购买 nike

我有这个 Queue Trigger .预期是当我在 Queue 中插入一条消息时,触发器必须触发并处理出列的消息。

    [FunctionName("NewPayrollQueueTrigger")]
public async static void Run([QueueTrigger("myqueue", Connection =
"AzureWebJobsStorage")]string myQueueItem,
[DurableClient] IDurableOrchestrationClient starter,
ILogger log)
{
log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");

await starter.StartNewAsync("NewPayrollOrchestrator", input: myQueueItem);

}
触发器正在正常激活,但这种奇怪的行为正在发生。该函数显然期望 message编码为 Base-64 .

Exception binding parameter 'myQueueItem' <--- The input is not avalid Base-64 string as it contains a non-base 64 character, more thantwo padding characters, or an illegal character among the paddingcharacters.


我正在使用来自 Azure Queue 的此方法向队列发送消息图书馆 v.12 来自 Azure.Storage.Queues并没有发现将消息编码为 Base-64 的重载.
请注意 _queue QueueClient 实例。
 public async Task<Response<SendReceipt>> SendAsync(string message)
{
return await _queue.SendMessageAsync(message);
}
所以我试图自己对消息进行编码......
 public async Task<Response<SendReceipt>> SendAsBase64Async(string message)
{
byte[] buffer = Encoding.Unicode.GetBytes(message);
string msg = Convert.ToBase64String(buffer);

return await _queue.SendMessageAsync(msg);

}
......它也不起作用。这是我通过该部分但进一步抛出错误的代码,表明它可以获取消息但未正确解码,因为它是存储中现有 blob 的文件名:
Decode error
让它工作的唯一方法是,如果我使用 Azure Storage Explorer 手动向队列发送消息选择通过 UI 对消息进行编码。

最佳答案

作为替代方案,您可以利用内置功能将消息转换为 Base64,方法是使用 QueueClientOptions 创建客户端。与 MessageEncoding设置为 QueueMessageEncoding.Base64 .
例如:

_queue = new QueueClient(connectionString, queueName, new QueueClientOptions
{
MessageEncoding = QueueMessageEncoding.Base64
});

...

var message = "some message";
await _queue.SendMessageAsync(message); // Will be converted as Base64.

关于c# - Azure 函数 : Queue Trigger is expecting Base-64 messages and doesn't process them correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63023481/

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