我正在用rust重写我的一些python代码。我想构建一个Hello World程序,它接受一个json事件,将其发送到指定的总线,并给我一个“成功”。
这是Python中的等价代码:
response = events_client.put_events(
Entries=[{
"Source": SRC_ARN,
"DetailType": 'event',
"Detail": json.dumps(payload),
"EventBusName": DEST_ARN
}]
)
字符串
我开始浏览aws sdk docs,然后我查看了youtube,在那里我了解了Rust插件(尽管它仍然对我当前的问题没有帮助),然后是官方github repo与SDK使用示例,但没有找到eventbridge示例。我只是不知道如何发送事件。这是我的代码,提前感谢:
use aws_sdk_eventbridge as eeb;
use aws_sdk_eventbridge::types::PutEventsRequestEntry;
use json;
async fn main() -> Result<(), eeb::Error> {
//configuring the client
let config = aws_config::load_from_env().await;
let client = aws_sdk_eventbridge::Client::new(&config);
let eventjson = json::parse(r#"{"event":"test"}"#);
//building the event
let eeb_bus_name = "arn" //replaced my arn for privacy;
let entry = PutEventsRequestEntry::builder()
.source("test")
.detail_type("test_event")
.event_bus_name(eeb_bus_name).build();
let resp = client.put_events().entries(entry).endpoint_id(eeb_bus_name);
Ok(())
}
型
1条答案
按热度按时间ojsjcaue1#
代码在实际请求的地方缺少
.send().await
。此外,endpoint_id
是端点的URL子域(例如,如果端点的URL是https://abcde.veo.endpoints.event.amazonaws.com
,则EndpointId是abcde.veo
),而不是事件总线名称。这个代码为我工作。
字符串