add better error handling for secretsmanager helloworld example (#307)

* add better error handling for secretsmanager helloworld example

* Format

Co-authored-by: Russell Cohen <russell.r.cohen@gmail.com>
This commit is contained in:
Nas Taibi 2021-04-14 03:18:52 +01:00 committed by GitHub
parent cc805834b8
commit cad0d0e16a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 6 deletions

View File

@ -5,6 +5,7 @@
use aws_hyper::conn::Standard;
use secretsmanager::Client;
use secretsmanager::Region;
use secretsmanager::SdkError;
use tracing_subscriber::fmt::format::FmtSpan;
use tracing_subscriber::fmt::SubscriberBuilder;
@ -25,16 +26,29 @@ async fn main() {
let conn = Standard::https();
let client = Client::from_conf_conn(config, conn);
// attempt to create a secret,
// need to find a better way to handle failure such as ResourceExistsException
let data = client
// attempt to create a secret,
// need to find a better way to handle failure such as ResourceExistsException
let data = match client
.create_secret()
.name(secret_name)
.secret_string(secret_value)
.send()
.await
.expect("Error creating secret or secret already exists");
println!("Created secret {:?} with ARN {:?}", secret_name, data.arn);
{
Ok(secret) => secret,
Err(SdkError::ServiceError { err, .. }) => match err.kind {
secretsmanager::error::CreateSecretErrorKind::ResourceExistsError(_) => {
panic!("This secret already exists!")
}
_ => panic!("Secretsmanager Error: {}", err),
},
Err(other) => panic!("Failed to create secret: {}", other),
};
println!(
"Created secret {:?} with ARN {:?}",
secret_name,
data.arn.unwrap()
);
// try and retrieve the secret value we just created
let retrieved_secret = client
@ -45,5 +59,7 @@ async fn main() {
.expect("unable to retrieve secret");
assert_eq!(retrieved_secret.secret_string.unwrap(), secret_value);
println!("successfully retrieved secret string that matches the original one we created earlier");
println!(
"successfully retrieved secret string that matches the original one we created earlier"
);
}