Skip to content

CarlosLanderas/azure-app-configuration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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