With azure-app-configuration you can easily work with your Azure App Configuration service centralized configurations.
Latest version supports:
- List keys
- List labels
- List key values
- Get key value
- Set key value (with label, tags and content type)
- Remove key value
You can find some sample code snippets here: examples.
Just replace the configuration with your Azure configuration endpoint, your access_key and secret and execute them by using:
cargo run --example list-key-values
cargo run --example get_key_value
cargo run --example set_key_value
You can see all available targets in Cargo.toml file
To create an Azure App Configuration client just use ::new method and provide the endpoint url, the access key and the secret:
use azure_app_configuration::client::AzureAppConfigClient;
let app_config_client = AzureAppConfigClient::new(
"https://endpoint.azconfig.io",
"0-l9-s0:Z6DMwn2DoiK2gVsTIm7h",
"wgf9BDWeh/+Dtq8Dmps3SUpwrdgYLrXG8svE+VyM06w=",
);
//List all key values without a label (all key values);
let keys = app_config_client.list_keys().await.unwrap();
for k in keys.items {
println!("{:?}", k);
}
let labels = app_config_client.list_labels().await.unwrap();
for l in labels.items {
println!("{:?}", l);
}
let key_values = app_config_client.list_key_values(SearchLabel::All).await;
for k in key_values {
println!("{:?}", k);
}
Retrieve value for key ConnectionString using label ContosoApp
let kv = app_config_client
.get_key_value("ConnectionString", SearchLabel::For("ContosoApp"))
.await;
println!("{:?}", kv);
Retrieve a label called ConnectionString with no label specified
let kv = app_config_client
.get_key_value("ConnectionString", SearchLabel::All)
.await;
println!("{:?}", kv);
Delete ConnectionString key for Application1 label
let kv = app_config_client
.set_key(
"ConnectionString",
"Server=dummy;user id=user;password=fakepass",
SearchLabel::For("Application1"),
None,
None,
)
.await;
println!("{:?}", kv);
let mut tags = HashMap::new();
tags.insert("tag1", "tagvalue1");
tags.insert("tag2", "tagvalue2");
let kv = app_config_client
.set_key(
"UseCache",
"true",
SearchLabel::For("PublicWebsite"),
Some(tags),
Some("application/lande"),
)
.await;
println!("{:?}", kv);