Unverified Commit cad0d0e1 authored by Nas Taibi's avatar Nas Taibi Committed by GitHub
Browse files

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



* add better error handling for secretsmanager helloworld example

* Format

Co-authored-by: default avatarRussell Cohen <russell.r.cohen@gmail.com>
parent cc805834
Loading
Loading
Loading
Loading
+22 −6
Original line number Diff line number Diff line
@@ -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;

@@ -27,14 +28,27 @@ async fn main() {

    // attempt to create a secret,
    // need to find a better way to handle failure such as ResourceExistsException
    let data = client
    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"
    );
}