Skip to content
Snippets Groups Projects
Unverified Commit cc805834 authored by Nas Taibi's avatar Nas Taibi Committed by GitHub
Browse files

add secretsmanager helloworld example (#303) (#304)


* add secrets manager hello world example

* Apply suggestions from code review

Co-authored-by: default avatarRussell Cohen <russell.r.cohen@gmail.com>

Co-authored-by: default avatarRussell Cohen <russell.r.cohen@gmail.com>

Co-authored-by: default avatarRussell Cohen <russell.r.cohen@gmail.com>
parent cd21b6d3
Branches
Tags
No related merge requests found
[package]
name = "secretsmanager-helloworld"
version = "0.1.0"
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Nas Taibi <naceredd@amazon.com>"]
edition = "2018"
description = "Example usage of the SecretManager service"
[dependencies]
secretsmanager = { path = "../../build/aws-sdk/secretsmanager" }
aws-hyper = { path = "../../build/aws-sdk/aws-hyper" }
tokio = { version = "1", features = ["full"]}
# optional
tracing-subscriber = { version = "0.2.16", features = ["fmt"] }
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
use aws_hyper::conn::Standard;
use secretsmanager::Client;
use secretsmanager::Region;
use tracing_subscriber::fmt::format::FmtSpan;
use tracing_subscriber::fmt::SubscriberBuilder;
#[tokio::main]
async fn main() {
let secret_name = "some-secret-id";
let secret_value = "testsecret";
SubscriberBuilder::default()
.with_env_filter("info")
.with_span_events(FmtSpan::CLOSE)
.init();
let config = secretsmanager::Config::builder()
// region can also be loaded from AWS_DEFAULT_REGION, just remove this line.
.region(Region::new("us-east-1"))
// creds loaded from environment variables, or they can be hard coded.
// Other credential providers not currently supported
.build();
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
.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);
// try and retrieve the secret value we just created
let retrieved_secret = client
.get_secret_value()
.secret_id(secret_name)
.send()
.await
.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");
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment