Azure App Configuration client for Rust

Build Status License Cargo Documentation

With azure-app-configuration you can easily work with your Azure App Configuration service centralized configurations.

Latest version supports:

Running samples

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

Code samples

Create an AzureAppConfiguration client

To create an Azure App Configuration client just use ::new method and provide the endpoint url, the access key and the secret:

rust use azure_app_configuration::client::AzureAppConfigClient; let app_config_client = AzureAppConfigClient::new( "https://endpoint.azconfig.io", "0-l9-s0:Z6DMwn2DoiK2gVsTIm7h", "wgf9BDWeh/+Dtq8Dmps3SUpwrdgYLrXG8svE+VyM06w=", );

List keys

rust //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); }

List labels

rust let labels = app_config_client.list_labels().await.unwrap(); for l in labels.items { println!("{:?}", l); }

List Key Values

rust let key_values = app_config_client.list_key_values(SearchLabel::All).await; for k in key_values { println!("{:?}", k); }

Get Key value with label

Retrieve value for key ConnectionString using label ContosoApp

rust let kv = app_config_client .get_key_value("ConnectionString", SearchLabel::For("ContosoApp")) .await; println!("{:?}", kv);

Get Key value without label

Retrieve a label called ConnectionString with no label specified

rust let kv = app_config_client .get_key_value("ConnectionString", SearchLabel::All) .await; println!("{:?}", kv);

Set key value

Delete ConnectionString key for Application1 label

```rust let kv = appconfigclient .set_key( "ConnectionString", "Server=dummy;user id=user;password=fakepass", SearchLabel::For("Application1"), None, None, ) .await;

    println!("{:?}", kv);

```

Set key value with tags and content type

```rust 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);

```