Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält Richtlinien für den Azure Operator Service Manager, um den Entwurf von Konfigurationsgruppenschemas (CGSs) und den Betrieb von Konfigurationsgruppenwerten (CGVs) zu optimieren. Netzwerkfunktionsanbieter, Telco-Betreiber und deren Partner sollten diese Praktiken beim Onboarding und Bereitstellen von NFs berücksichtigen.
Übersicht über das JSON-Schema
DAS JSON-Schema ist ein IETF-Standard (Internet Engineering Task Force), der ein Format für die für eine Anwendung erforderlichen JSON-Daten und die Interaktion mit der Anwendung bereitstellt. Das Anwenden solcher Standards für ein JSON-Dokument hilft Ihnen, Konsistenz und Datengültigkeit für JSON-Daten zu erzwingen.
Wo wird das JSON-Schema verwendet?
- Azure Operator Service Manager verwendet die JSON-Schemanotation als Metaschema innerhalb
schemaDefinitionvon Eigenschaften für das CGS-ObjektConfigurationGroupSchemaPropertiesFormat. - Azure Operator Service Manager ermöglicht es dem Designer und Herausgeber, JSON-Schema anzugeben, wenn der Operator während der Instanziierung eines Standortnetzwerkdiensts (Site Network Service, SNS) oder NF Daten (JSON-Werte) bereitstellen muss.
- Azure Operator Service Manager ermöglicht es, die Metaschemaeigenschaften optional oder erforderlich zu sein. Wenn eine Eigenschaft markiert
requiredist, muss sie in den JSON-Werten angegeben werden.
Welche JSON-Schlüsselwörter werden unterstützt?
Für das CGS-Metaschema implementiert Azure Operator Service Manager unterstützung für JSON-Standardstichwörter auf Typbasis:
- Bei Objekttypen ist die Schlüsselwortunterstützung durch die Filterrichtlinie eingeschränkt. Siehe Objekt in der JSON-Schemareferenz.
- Bei Zeichenfolgentypen ist die Schlüsselwortunterstützung nicht beschränkt oder gefiltert. Siehe Zeichenfolge in der JSON-Schemareferenz.
- Bei numerischen Typen ist die Schlüsselwortunterstützung nicht beschränkt oder gefiltert. Siehe numerische Typen in der JSON-Schemareferenz.
Optionale und erforderliche Felder
Sie deklarieren eine Eigenschaft als optional, indem Sie ein required Schlüsselwort einschließen, das die optionale Eigenschaft ausgelassen. Wenn Sie das required Schlüsselwort nicht angeben, werden alle Eigenschaften als erforderlich betrachtet. Sie benötigen mindestens einen erforderlichen Eigenschaftstyp, um einen optionalen Eigenschaftstyp zu unterstützen.
{
"type": "object",
"properties": {
"abc": {
"type": "integer",
"default": 30
},
"xyz": {
"type": "string",
"default": "abc123"
}
}
"required": ["abc"]
}
Standardwerte im JSON-Schema
Für optionale Eigenschaften implementiert Azure Operator Service Manager eine benutzerdefinierte Methode zur Behandlung von Standardwerten. Wenn ein Standardwert im CGS-Metaschema definiert ist, verwendet Azure Operator Service Manager diesen Wert, in dem die Eigenschaft in den Eingabe-CGV-Daten fehlt oder nicht definiert ist. Die Validatorlogik des Azure Operator Service Manager hydratisiert im Wesentlichen den CGV-Wert mit dem Standardwert, wenn der Operator keinen Wert bereitstellt.
So definieren Sie Standardeinstellungen
Standardwerte müssen entweder innerhalb von Eigenschaften oder innerhalb von Elementen eines Arrays angegeben werden. Im folgenden Beispiel werden Standardeinstellungen für Ganzzahl- und Zeichenfolgen-Eigenschaftstypen gezeigt.
{
"type": "object",
"properties": {
"abc": {
"type": "integer",
"default": 30
},
"xyz": {
"type": "string",
"default": "abc123"
}
}
}
Regeln zum Definieren von Standardwerten
Die folgenden Regeln werden angewendet, wenn Sie einen Standardwert überprüfen. Berücksichtigen Sie diese Regeln, wenn Sie Standardwerte verwenden, um erwartete Ergebnisse sicherzustellen.
- Ein Standardwert sollte nicht auf eine erforderliche Eigenschaft angewendet werden.
- Ein Standardwert wird in top-down-Reihenfolge ausgewertet, von wo aus das Schlüsselwort zuerst angezeigt wird.
- Wenn in der Eingabe-CGV ein Eigenschaftswert vorhanden ist, werden nur untergeordnete Elemente dieser Eigenschaften für Standardwerte ausgewertet.
- Wenn in der Eingabe-CGV kein Eigenschaftswert vorhanden ist, wird er zusammen mit untergeordneten Elementen für einen Standardwert ausgewertet.
- Wenn ein Eigenschaftswert der
objectTyp ist und weder er noch sein Schlüssel in der Eingabe-CGV vorhanden sind, werden keine Standardwerte für das Objekt ausgewertet.
Überlegungen zur CGS
Im Laufe der Zeit hat sich der empfohlene Ansatz für das beste Design von CGSs geändert.
One-CGS-Ansatz
Die ursprüngliche Empfehlung bestand darin, nur ein einziges CGS für die gesamte NF zu verwenden. Dieser Ansatz konsolidiert standortspezifische, instanzspezifische und sicherheitsspezifische Parameter in einer einzigen Gruppe von Konfigurationsgruppenobjekten. Bei diesem Ansatz wurden mehrere Objektsätze vermieden, mit Ausnahme von seltenen Fällen, in denen ein Dienst mehrere Komponenten hatte. Viele Partner haben erfolgreich Dienste mithilfe dieses Ansatzes integriert und werden weiterhin unterstützt.
Drei-CGS-Ansatz
Wir empfehlen nun, mindestens drei CGSs für das gesamte NF zu verwenden, indem Sie Parameter in diese Konfigurationsgruppen organisieren:
- Standortspezifische Parameter: Beispiele sind IP-Adressen und eindeutige Namen.
- Instanzspezifische Parameter: Beispiele umfassen Timeouts und Debugebenen.
- Sicherheitsspezifische Parameter: Beispiele sind Kennwörter und Zertifikate. Mit sicherheitsspezifischen Parametern verwenden Sie Azure Key Vault, um sichere Werte zu speichern.
Entwerfen von Sets aus drei CGS-Objekten
Berücksichtigen Sie beim Entwerfen von drei CGS-Objekten die folgenden Metaschemarichtlinien:
Wählen Sie aus, welche Parameter verfügbar gemacht werden sollen.
Eine Faustregel besteht darin, diese Parameter mithilfe eines direkten Vorgangs verfügbar zu machen, z. B. eine Computeebene oder ein Helm-Wert. Verwenden Sie diesen Ansatz im Gegensatz zu einem Parameter, auf den ein anderer Agent wirkt, z. B.
cloudinitBenutzerdaten.Sortieren Sie die Parameter nach websitespezifischen, instanzspezifischen und sicherheitsspezifischen Sätzen.
Definieren Sie die erforderlichen im Vergleich zu optionalen Parametern. Definieren Sie für optionale Parameter einen angemessenen Standardwert.
Stellen Sie sicher, dass Parameter nicht zwischen CGS-Objekten überlappen.
Dieses Beispiel zeigt eine Beispiel-CGS-Nutzlast:
{
"type": "object",
"properties": {
"abc": {
"type": "integer",
"default": 30
},
"xyz": {
"type": "integer",
"default": 40
},
"qwe": {
"type": "integer"
}
}
"required": "qwe"
}
Dieses Beispiel zeigt eine entsprechende CGV-Nutzlast, die der Operator übergibt:
{
"qwe": 20
}
Dieses Beispiel zeigt die resultierende CGV-Nutzlast, die Azure Operator Service Manager generiert:
{
"abc": 30,
"xyz": 40,
"qwe": 20
}
CGV-Überlegungen
Bevor Sie die CGV-Ressourcenerstellung übermitteln, können Sie überprüfen, ob das Schema und die Werte der zugrunde liegenden YAML- oder JSON-Datei den Erwartungen des zugehörigen CGS entsprechen. Um diese Überprüfung zu erreichen, besteht eine Option darin, die YAML-Erweiterung für Visual Studio Code zu verwenden.