azure - Azure Function App 无法读取带有队列触发器的 Base64 编码消息
问题描述
我有两个应用程序。第一个是用 C++ 编写的服务,它向 Azure 队列生成消息,以及一个用 C# 编写的函数应用,它使用这些消息。我使用 Azure SDK 写入队列
void send_to_queue (const string & message_body, const string & queue_name, const ::azure::storage::cloud_storage_account & storage_account){
::azure::storage::cloud_queue_client queue_client = storage_account_.create_cloud_queue_client();
::azure::storage::cloud_queue queue = queue_client.get_queue_reference(queue_name);
::azure::storage::cloud_queue_message message(message_body);
queue.add_message(message);
}
现在,函数应用程序默认由 VS Code 的 Azure 插件创建:
public static class MessageConsumer
{
[FunctionName("MessageConsumer")]
public static void Run([QueueTrigger("my-queue-name", Connection = "my_STORAGE")] string message, ILogger log)
{
// Code here
}
}
函数应用崩溃并出现以下错误:
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
我拒绝相信对我来说唯一的选择是使用 boost 等对 c++ 中的 message_body 进行 base64 编码。这里有解决方法吗?
解决方案
推荐阅读
- reactjs - 我可以对包装在 HOC 中的组件进行 typescript props 验证吗?
- android - 如何创建包含 3 个连续问号字符的 TODO 模式?
- java - 读取 InputStream 字节并写入 ByteArrayOutputStream
- laravel - 如何使用 Burp 工具阻止 Laravel 请求被操纵?
- go - 不能将 lib.Const(lib.Version 类型的常量 16777216)用作 lib.Version
- multithreading - 如何在微服务架构中从同一服务的不同实例监控一个实例的线程
- python - 位串中的斐波那契数列
- csv - 如何在读取 TXT 文件时处理冒号(:)
- python - 如何在 VS Code 中设置 python 环境变量?
- java - java.lang.NumberFormatException:对于输入字符串:“0.000”