![](/img/trans.png)
[英]How do I access the data from an AWS Kinesis Data Stream event?
[英]How do I put my struct into a PutRecordInput for AWS Kinesis in Rust?
我对 Rust 非常陌生,并试图获得一些可以将记录推送到 kinesis firehose stream 的代码。
struct AuditRecord{
user_id : String,
request : Value,
request_id : String,
timestamp_raw : i64,
}
...
let client = KinesisClient::new(Region::UsEast1);
let record = PutRecordInput{
partition_key : requestId.to_string(),
stream_name : streamName,
data : auditRecord
};
当我尝试这个时,它需要bytes::bytes::Bytes
中的数据,但我不清楚如何将我的结构转换为bytes::bytes::Bytes
表示。 任何有关如何 go 的示例将不胜感激。
为了澄清我正在使用
rusoto = "0.24.2"
rusoto_kinesis = "0.43.0"
rusoto_core = "0.43.0"
此外,如果有人知道一个很好的地方可以查看如何使用 rusoto 与各种 AWS 实体交谈的真实示例,那将不胜感激。
正如其他人所说,这实际上取决于您选择的序列化。 如果您选择了基于字符串的编码,例如 xml 或 json,那么您可以使用以下代码:
let msg: String = "some message".to_string();
let record = PutRecordInput{
partition_key : requestId.to_string(),
stream_name : streamName,
data : msg.into()
};
// or it could be
let record = PutRecordInput{
partition_key : requestId.to_string(),
stream_name : streamName,
data : Bytes::from(msg)
};
用您选择的字符串灭菌替换“一些消息”。
虽然从技术上讲,使用像 protobuf 之类的二进制编码通常要紧凑得多,但是另一方面必须能够解释格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.