我对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
};
当我尝试此操作时,它需要
bytes::bytes::Bytes
中的数据,但是我不清楚如何将我的结构转换为bytes::bytes::Bytes
表示形式。如何进行此操作的任何示例将不胜感激。为了澄清我正在使用
rusoto = "0.24.2"
rusoto_kinesis = "0.43.0"
rusoto_core = "0.43.0"
此外,如果有人知道在一个合适的地方可以看到有关如何使用rusoto与varios 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之类的二进制编码通常要紧凑得多,但是,另一方面,任何东西都必须能够解释该格式。
关于amazon-web-services - 如何将我的结构放入Rust中用于AWS Kinesis的PutRecordInput中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61761212/