代码之家  ›  专栏  ›  技术社区  ›  NSA

如何使用rusoto将我的结构放入PutRecordInput中以供AWS运动?

  •  -1
  • NSA  · 技术社区  · 5 年前

    我是一个非常新的生锈,并试图得到一点代码工作,可以推动一个记录到动情消防水龙带流。

    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 但我不清楚如何将我的结构转换为 陈述。任何关于如何进行的例子都将不胜感激。

    为了澄清我正在使用

    rusoto = "0.24.2"
    rusoto_kinesis = "0.43.0"
    rusoto_core = "0.43.0"
    

    另外,如果有人知道一个好地方,看到如何使用rusoto与varios AWS实体交谈的真实例子,将不胜感激。

    0 回复  |  直到 5 年前
        1
  •  0
  •   Mr. Awesome    4 年前

    正如其他人所说,这实际上取决于您对序列化的选择。如果您选择基于字符串的编码,如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)
    };