Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln innehåller riktlinjer för Azure Operator Service Manager för att optimera utformningen av konfigurationsgruppsscheman (CGS) och driften av konfigurationsgruppsvärden (CGV:er). Leverantörer av nätverksfunktioner (NF), telekomoperatörer och deras partner bör ha dessa metoder i åtanke när de registrerar och distribuerar NF:er.
Översikt över JSON-schema
JSON-schema är en IETF-standard (Internet Engineering Task Force) som ger ett format för vilka JSON-data som krävs för ett program och hur du interagerar med det. Genom att tillämpa sådana standarder för ett JSON-dokument kan du framtvinga konsekvens och data giltighet för JSON-data.
Var används JSON-schema?
- Azure Operator Service Manager använder JSON Schema-notation som ett metaschema i
schemaDefinitionegenskaperna för CGS-objektetConfigurationGroupSchemaPropertiesFormat. - Med Azure Operator Service Manager kan designern och utgivaren ange JSON-schema när operatorn måste ange data (JSON-värden) under instansiering av en platsnätverkstjänst (SNS) eller NF.
- Med Azure Operator Service Manager kan metaschemaegenskaperna vara valfria eller obligatoriska. Om en egenskap är markerad
requiredmåste den anges i JSON-värdena.
Vilka JSON-nyckelord stöds?
För CGS-metaschemat implementerar Azure Operator Service Manager stöd för JSON-standardnyckelord typ för typ:
- För objekttyper begränsas nyckelordsstöd av filterprincip. Se objektet i JSON-schemareferensen.
- För strängtyper är nyckelordsstöd inte begränsat eller filtrerat. Se strängen i JSON Schema-referensen.
- För numeriska typer är nyckelordsstöd inte begränsat eller filtrerat. Se Numeriska typer i JSON-schemareferensen.
Valfria och obligatoriska fält
Du deklarerar en egenskap som valfri genom att inkludera ett required nyckelord som utelämnar den valfria egenskapen. Om du inte anger nyckelordet required anses alla egenskaper vara obligatoriska. Du behöver minst en egenskapstyp som krävs för att stödja en valfri egenskapstyp.
{
"type": "object",
"properties": {
"abc": {
"type": "integer",
"default": 30
},
"xyz": {
"type": "string",
"default": "abc123"
}
}
"required": ["abc"]
}
Standardvärden i JSON-schema
För valfria egenskaper implementerar Azure Operator Service Manager en anpassad metod för att hantera standardvärden. När ett standardvärde definieras i CGS-metaschemat använder Azure Operator Service Manager det värdet där egenskapen saknas eller är odefinierad i cgv-indata. Azure Operator Service Manager-valideringslogik återfuktar i princip CGV-värdet med standardvärdet när operatorn inte anger något värde.
Så här definierar du standardvärden
Standardvärden måste anges antingen inuti egenskaper eller inuti objekt i en matris. I följande exempel visas standardvärden för heltals- och strängegenskapstyper:
{
"type": "object",
"properties": {
"abc": {
"type": "integer",
"default": 30
},
"xyz": {
"type": "string",
"default": "abc123"
}
}
}
Regler för att definiera standardvärden
Följande regler tillämpas när du verifierar ett standardvärde. Tänk på de här reglerna när du använder standardvärden för att säkerställa förväntade resultat.
- Ett standardvärde ska inte tillämpas på en obligatorisk egenskap.
- Ett standardvärde utvärderas i uppifrån och ned-ordning varifrån nyckelordet först visas.
- Om det finns ett egenskapsvärde i CGV-indata, utvärderas endast underordnade egenskaper för standardinställningar.
- Om det inte finns något egenskapsvärde i CGV-indatan utvärderas det för ett standardvärde, tillsammans med eventuella underordnade värden.
- Om ett egenskapsvärde är
objecttypen och varken det eller dess nyckel finns i CGV-indata utvärderas inga standardvärden för objektet.
CGS-överväganden
Med tiden ändrades den rekommenderade metoden för utformningen av CGS:er.
One-CGS-metoden
Den ursprungliga rekommendationen var att endast använda en enda CGS för hela NF. Den här metoden konsoliderade platsspecifika, instansspecifika och säkerhetsspecifika parametrar i en enda uppsättning konfigurationsgruppsobjekt. Den här metoden undvek flera objektuppsättningar, förutom i sällsynta fall där en tjänst hade flera komponenter. Många partners har framgångsrikt registrerat tjänster med hjälp av den här metoden, och den är fortfarande stödd.
Three-CGS Metod
Vi rekommenderar nu att du använder minst tre CGS för hela NF genom att ordna parametrar i dessa uppsättningar med konfigurationsgrupper:
- Platsspecifika parametrar: Exempel är IP-adresser och unika namn.
- Instansspecifika parametrar: Exempel är tidsgränser och felsökningsnivåer.
- Säkerhetsspecifika parametrar: Exempel är lösenord och certifikat. Med säkerhetsspecifika parametrar använder du Azure Key Vault för att lagra säkra värden.
Utforma tre CGS-objektuppsättningar
Tänk på följande riktlinjer för metaschemat när du utformar tre CGS-objekt:
Välj vilka parametrar som ska exponeras.
En tumregel är att exponera dessa parametrar med hjälp av en direkt operation, till exempel en compute tier eller ett Helm-värde. Använd den här metoden i stället för en parameter som en annan agent agerar på, till exempel
cloudinitanvändardata.Sortera parametrarna i platsspecifika, instansspecifika och säkerhetsspecifika uppsättningar.
Definiera obligatoriska kontra valfria parametrar. För valfria parametrar definierar du ett rimligt standardvärde.
Se till att parametrarna inte överlappar CGS-objekt.
Det här exemplet visar en exempelpayload för CGS:
{
"type": "object",
"properties": {
"abc": {
"type": "integer",
"default": 30
},
"xyz": {
"type": "integer",
"default": 40
},
"qwe": {
"type": "integer"
}
}
"required": "qwe"
}
Det här exemplet visar en motsvarande CGV-last som operatören överför:
{
"qwe": 20
}
Det här exemplet visar den resulterande CGV-nyttolasten som Azure Operator Service Manager genererar:
{
"abc": 30,
"xyz": 40,
"qwe": 20
}
CGV-överväganden
Innan du skickar cgv-resursen kan du verifiera att schemat och värdena för den underliggande YAML- eller JSON-filen matchar vad motsvarande CGS förväntar sig. För att utföra verifieringen är ett alternativ att använda YAML-tillägget för Visual Studio Code.