1 unstable release

0.1.0 Sep 17, 2019

#784 in Configuration

Apache-2.0/MIT

24KB
402 lines

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:

  • List keys
  • List labels
  • List key values
  • Get key value
  • Set key value (with label, tags and content type)
  • Remove key value

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:

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

   //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

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

List Key Values

    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

   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

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

Set key value

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

Set key value with tags and content type

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

Dependencies

~10MB
~175K SLoC