Använda innehållstyp för att lagra JSON-nyckelvärden i App Configuration
Data lagras i App Configuration som nyckelvärden, där värden behandlas som strängtyp som standard. Du kan dock ange en anpassad typ med hjälp av den innehållstypegenskap som är associerad med varje nyckelvärde. Den här processen bevarar den ursprungliga typen av data eller får ditt program att bete sig annorlunda baserat på innehållstyp.
Översikt
I App Configuration kan du använda JSON-medietypen som innehållstyp för dina nyckelvärden för att dra nytta av följande fördelar:
- Enklare datahantering: Det blir mycket enklare att hantera nyckelvärden, till exempel matriser, i Azure-portalen.
- Förbättrad dataexport: Primitiva typer, matriser och JSON-objekt bevaras under dataexporten.
- Internt stöd med appkonfigurationsprovider: Nyckelvärden med JSON-innehållstyp fungerar bra när de används av appkonfigurationsproviderbibliotek i dina program.
Giltig JSON-innehållstyp
Medietyper, enligt definitionen här, kan tilldelas till den innehållstyp som är associerad med varje nyckelvärde.
En medietyp består av en typ och en undertyp. Om typen är application
och undertypen (eller suffixet) är json
anses medietypen vara en giltig JSON-innehållstyp.
Några exempel på giltiga JSON-innehållstyper är:
application/json
application/activity+json
application/vnd.foobar+json;charset=utf-8
Giltiga JSON-värden
När ett nyckelvärde har en JSON-innehållstyp måste dess värde vara i giltigt JSON-format för att klienter ska kunna bearbeta det korrekt. Annars kan klienter misslyckas eller falla tillbaka och behandla det som strängformat. Några exempel på giltiga JSON-värden är:
"John Doe"
723
false
null
"2020-01-01T12:34:56.789Z"
[1, 2, 3, 4]
{"ObjectSetting":{"Targeting":{"Default":true,"Level":"Information"}}}
Kommentar
För resten av den här artikeln kallas alla nyckelvärden i App Configuration som har en giltig JSON-innehållstyp och ett giltigt JSON-värde för JSON-nyckelvärde.
I den här självstudien får du lära dig att:
- Skapa JSON-nyckelvärden i App Configuration.
- Importera JSON-nyckelvärden från en JSON-fil.
- Exportera JSON-nyckelvärden till en JSON-fil.
- Använd JSON-nyckelvärden i dina program.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Ett appkonfigurationsarkiv. Skapa en butik.
- Den här självstudien kräver version 2.10.0 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa JSON-nyckelvärden i App Configuration
JSON-nyckelvärden kan skapas med hjälp av Azure-portalen, Azure CLI eller genom att importera från en JSON-fil. I det här avsnittet hittar du instruktioner om hur du skapar samma JSON-nyckelvärden med alla tre metoderna.
Skapa JSON-nyckelvärden med hjälp av Azure-portalen
Lägg till följande nyckelvärden i App Configuration Store. Lämna Etikett med standardvärdet. Mer information om hur du lägger till nyckelvärden i ett arkiv med hjälp av Azure-portalen eller CLI finns i Skapa ett nyckelvärde.
Tangent | Värde | Innehållstyp |
---|---|---|
Inställningar:BackgroundColor | "Grön" | application/json |
Inställningar:FontSize | 24 | application/json |
Inställningar:UseDefaultRouting | Falska | application/json |
Inställningar:BlockedUsers | NULL | application/json |
Inställningar:ReleaseDate | "2020-08-04T12:34:56.789Z" | application/json |
Inställningar:RolloutPercentage | [25,50,75,100] | application/json |
Inställningar:Logging | {"Test":{"Level":"Debug"},"Prod":{"Level":"Warning"}} | application/json |
- Välj Använd.
Skapa JSON-nyckelvärden med Hjälp av Azure CLI
Följande kommandon skapar JSON-nyckelvärden i appkonfigurationsarkivet. Ersätt <appconfig_name>
med namnet på appkonfigurationsarkivet.
appConfigName=<appconfig_name>
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:BackgroundColor --value \"Green\"
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:FontSize --value 24
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:UseDefaultRouting --value false
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:BlockedUsers --value null
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:ReleaseDate --value \"2020-08-04T12:34:56.789Z\"
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:RolloutPercentage --value [25,50,75,100]
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:Logging --value {\"Test\":{\"Level\":\"Debug\"},\"Prod\":{\"Level\":\"Warning\"}}
Viktigt!
Om du använder Azure CLI eller Azure Cloud Shell för att skapa JSON-nyckelvärden måste det angivna värdet vara en undantagen JSON-sträng.
Importera JSON-nyckelvärden från en fil
Skapa en JSON-fil Import.json
med namnet med följande innehåll och importera den som nyckelvärden till App Configuration:
{
"Settings": {
"BackgroundColor": "Green",
"BlockedUsers": null,
"FontSize": 24,
"Logging": {"Test":{"Level":"Debug"},"Prod":{"Level":"Warning"}},
"ReleaseDate": "2020-08-04T12:34:56.789Z",
"RolloutPercentage": [25,50,75,100],
"UseDefaultRouting": false
}
}
az appconfig kv import -s file --format json --path "~/Import.json" --content-type "application/json" --separator : --depth 2
Kommentar
Argumentet --depth
används för att platta ut hierarkiska data från en fil till nyckelvärden. I den här självstudien anges djup för att visa att du också kan lagra JSON-objekt som värden i App Configuration. Om djup inte anges plattas JSON-objekt ut till den djupaste nivån som standard.
De JSON-nyckelvärden som du skapade bör se ut så här i App Configuration:
Kontrollera detta genom att öppna appkonfigurationsresursen i Azure-portalen och gå till Konfigurationsutforskaren.
Exportera JSON-nyckelvärden till en fil
En av de största fördelarna med att använda JSON-nyckelvärden är möjligheten att bevara den ursprungliga datatypen för dina värden när du exporterar. Om ett nyckelvärde i App Configuration inte har JSON-innehållstyp behandlas dess värde som en sträng.
Överväg dessa nyckelvärden utan JSON-innehållstyp:
Tangent | Värde | Innehållstyp |
---|---|---|
Inställningar:FontSize | 24 | |
Inställningar:UseDefaultRouting | falskt |
När du exporterar dessa nyckelvärden till en JSON-fil exporteras värdena som strängar:
{
"Settings": {
"FontSize": "24",
"UseDefaultRouting": "false"
}
}
Men när du exporterar JSON-nyckelvärden till en fil bevarar alla värden sin ursprungliga datatyp. För att verifiera den här processen exporterar du nyckelvärden från appkonfigurationen till en JSON-fil. Du ser att den exporterade filen har samma innehåll som den Import.json
fil som du tidigare importerade.
az appconfig kv export -d file --format json --path "~/Export.json" --separator :
Kommentar
Om appkonfigurationsarkivet har vissa nyckelvärden utan JSON-innehållstyp exporteras de också till samma fil i strängformat.
Använda JSON-nyckelvärden i program
Det enklaste sättet att använda JSON-nyckelvärden i ditt program är via appkonfigurationsproviderbibliotek. Med providerbiblioteken behöver du inte implementera särskild hantering av JSON-nyckelvärden i ditt program. De parsas och konverteras så att de matchar programmets interna konfiguration.
Om du till exempel har följande nyckelvärde i App Configuration:
Tangent | Värde | Innehållstyp |
---|---|---|
Inställningar | {"FontSize":24,"UseDefaultRouting":false} | application/json |
Konfigurationen av .NET-programmet har följande nyckelvärden:
Tangent | Värde |
---|---|
Inställningar:FontSize | 24 |
Inställningar:UseDefaultRouting | falskt |
Du kan komma åt de nya nycklarna direkt eller så kan du välja att binda konfigurationsvärden till instanser av .NET-objekt.
Viktigt!
Inbyggt stöd för JSON-nyckelvärden är tillgängligt i .NET-konfigurationsprovider version 4.0.0 (eller senare). Mer information finns i avsnittet Nästa steg .
Om du använder SDK eller REST API för att läsa nyckelvärden från App Configuration, baserat på innehållstypen, ansvarar ditt program för att parsa värdet för ett JSON-nyckelvärde.
Rensa resurser
Om du inte vill fortsätta använda resurserna som skapas i den här artikeln tar du bort resursgruppen som du skapade här för att undvika avgifter.
Viktigt!
Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser i den tas bort permanent. Se till att du inte oavsiktligt tar bort fel resursgrupp eller resurser. Om du har skapat resurserna för den här artikeln i en resursgrupp som innehåller andra resurser som du vill behålla tar du bort varje resurs individuellt från respektive fönster i stället för att ta bort resursgruppen.
- Logga in på Azure-portalen och välj Resursgrupper.
- I rutan Filtrera efter namn anger du namnet på resursgruppen.
- I resultatlistan väljer du resursgruppens namn för att se en översikt.
- Välj Ta bort resursgrupp.
- Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resursgruppen för att bekräfta och välj Ta bort.
Efter en liten stund tas resursgruppen och alla dess resurser bort.
Nästa steg
Nu när du vet hur du arbetar med JSON-nyckelvärden i appkonfigurationsarkivet skapar du ett program för användning av dessa nyckelvärden: