This was mostly an experiment writing a CLI/utility project in Rust. I needed a tool to create records in AWS Route 53 and then wait for the record to be fully synchronized across the AWS infrastructure before returning.
There are currently two subcommands:
update-record
- Update a record (UPSERT by default) and wait for completionwait-for-change
- Wait for a Route 53 change to be complete
route53-utils --help
This code happily compiles with Stable Rust (tested with 1.39.0).
After checking out, simply run:
cargo build # optionally with --release
Note that this program is currently configured to use the Rust-native rustls instead of OpenSSL (due to OpenSSL bugs/limitations that surface from the way that Rusoto interacts with OpenSSL). This has the added benefit that there is no dependency/linkage with the system-provided OpenSSL.
As of now, Rusoto uses a compiled-in set of certificates to form its trust anchors (webpki-roots) but should switch to rustls-native-certs in the future once the library is updated for hyper-rustls 0.18.0.