Unverified Commit 8c1f763d authored by Russell Cohen's avatar Russell Cohen Committed by GitHub
Browse files

add support & example for sqs (#440)

* add support & example for sqs

Add support for SQS and usage example. This requires that #437 & #438 are merged first

* Add note about unset fields

* Update hello-world.rs

Remove unused import

* Update hello-world.rs

use simpler subscriber instantiation
parent a9daa049
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
[package]
name = "sqs"
version = "0.1.0"
authors = ["Russell Cohen <rcoh@amazon.com>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
sqs = { package = "aws-sdk-sqs", path = "../../build/aws-sdk/sqs" }
tokio = { version = "1", features = ["full"] }
tracing-subscriber = "0.2.18"

[[bin]]
name = "hello-world"
+42 −0
Original line number Diff line number Diff line
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */

use std::process::exit;

#[tokio::main]
async fn main() -> Result<(), sqs::Error> {
    tracing_subscriber::fmt::init();
    let client = sqs::Client::from_env();
    let queues = client.list_queues().send().await?;
    let mut queue_urls = queues.queue_urls.unwrap_or_default();
    let queue_url = match queue_urls.pop() {
        Some(url) => url,
        None => {
            eprintln!("No queues in this account. Please create a queue to proceed");
            exit(1);
        }
    };
    println!("sending a receiving on `{}`", queue_url);

    let rsp = client
        .send_message()
        .queue_url(&queue_url)
        .message_body("hello from my queue")
        .send()
        .await?;
    println!("sent a message: {:#?}", rsp);

    let rcv_message_output = client
        .receive_message()
        // TODO: this should not be required, https://github.com/awslabs/smithy-rs/issues/439
        .max_number_of_messages(1)
        .queue_url(&queue_url)
        .send()
        .await?;
    for message in rcv_message_output.messages.unwrap_or_default() {
        println!("got a message: {:#?}", message);
    }
    Ok(())
}
+2065 −0

File added.

Preview size limit exceeded, changes collapsed.