我对Rust非常陌生,并试图获得一些代码工作,可以推动一个记录到一个运动消防软管流。
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
};当我尝试这样做时,它想要data in bytes::bytes::Bytes,但我不清楚如何将我的结构转换为bytes::bytes::Bytes表示。任何如何进行这方面的例子都将不胜感激。
为了澄清我用的
rusoto = "0.24.2"
rusoto_kinesis = "0.43.0"
rusoto_core = "0.43.0"另外,如果有人知道一个很好的地方,可以看到如何使用rusoto与各种AWS实体进行交谈的实例,这将是值得赞赏的。
发布于 2020-08-29 05:03:09
正如其他人所说,这确实取决于您对序列化的选择。如果您选择了像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或其他东西)通常要紧凑得多,但另一方面的任何内容都必须能够解释格式。
https://stackoverflow.com/questions/61761212
复制相似问题