-
Notifications
You must be signed in to change notification settings - Fork 2.7k
/
refresh_sample.py
65 lines (48 loc) · 1.93 KB
/
refresh_sample.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# ------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# -------------------------------------------------------------------------
from azure.appconfiguration.provider import load, WatchKey
from azure.appconfiguration import ( # type:ignore
AzureAppConfigurationClient,
ConfigurationSetting,
)
from sample_utilities import get_client_modifications
import os
import time
kwargs = get_client_modifications()
connection_string = os.environ.get("APPCONFIGURATION_CONNECTION_STRING")
# Setting up a configuration setting with a known value
client = AzureAppConfigurationClient.from_connection_string(connection_string)
configuration_setting = ConfigurationSetting(key="message", value="Hello World!")
client.set_configuration_setting(configuration_setting=configuration_setting)
def my_callback_on_fail(error):
print("Refresh failed!")
# Connecting to Azure App Configuration using connection string, and refreshing when the configuration setting message changes
config = load(
connection_string=connection_string,
refresh_on=[WatchKey("message")],
refresh_interval=1,
on_refresh_error=my_callback_on_fail,
**kwargs,
)
print(config["message"])
print(config["my_json"]["key"])
# Updating the configuration setting
configuration_setting.value = "Hello World Updated!"
client.set_configuration_setting(configuration_setting=configuration_setting)
# Waiting for the refresh interval to pass
time.sleep(2)
# Refreshing the configuration setting
config.refresh()
# Printing the updated value
print(config["message"])
print(config["my_json"]["key"])
# Waiting for the refresh interval to pass
time.sleep(2)
# Refreshing the configuration setting with no changes
config.refresh()
# Printing the updated value
print(config["message"])
print(config["my_json"]["key"])