#amazon-sqs #message-queue #aws #listener #aws-sdk #worker #documentation

sqs_worker

使用 AWS-SDK 为 Rust 实现的简单队列消息监听器

5 个版本

0.1.5 2023年12月19日
0.1.3 2023年6月6日
0.1.2 2023年6月6日
0.1.1 2023年6月6日
0.1.0 2023年5月12日

#5 in #listener

Apache-2.0

22KB
262 代码行,不包括注释

sqs_worker

Build Status Crates.io Documentation Rust 1.52+

入门指南

可在 crates: crates.io/sqs_worker 上找到

文档可在: docs.rs/sqs_worker 查找

sqs_worker = "0.1.4"

简单示例

简单示例: /examples/simple.rs

use sqs_worker::{SQSListener, SQSListenerClientBuilder};
use std::env;

#[tokio::main]
async fn main() -> eyre::Result<()> {
    env_logger::init();
    color_eyre::install()?;

    let queue_url = env::var("QUEUE_URL").unwrap_or("".to_string());

    let region = env::var("REGION").ok();

    let listener = SQSListener::new(queue_url, |message| {
        println!("Message received {:#?}", message)
    });
    let client = SQSListenerClientBuilder::new(region)
        .listener(listener)
        .build()?;
    let _ = client.start().await;
    
    Ok(())
}

使用 AWS 凭据启动监听器

带凭据的示例: /examples/with_creds.rs

use sqs_worker::{EnvironmentVariableCredentialsProvider, SQSListener, SQSListenerClientBuilder};
use std::env;

#[tokio::main]
async fn main() -> eyre::Result<()> {
    env_logger::init();
    color_eyre::install()?;

    let queue_url = env::var("QUEUE_URL").expect("QUEUE_URL env variable needs to be present");

    let region = env::var("REGION").ok();

    let credentials_provider = EnvironmentVariableCredentialsProvider::new();

    let listener = SQSListener::new(queue_url, |message| {
        println!("Message received {:#?}", message.body())
    });

    let client = SQSListenerClientBuilder::new_with(region, credentials_provider)
        .listener(listener)
        .build()?;
    let _ = client.start().await;
   
    Ok(())
}

依赖项

~30–42MB
~644K SLoC