Eindeutig benannte Ressourcen
In diesem Artikel werden ressourcen eindeutige Schlüsselstrategien in Microsoft Azure-APIs und Microsoft Graph-APIs und die Änderungen an Microsoft Graph-APIs verglichen, damit sie in deklarativer Infrastruktur als Codevorlagendateien wie Bicep-Dateien verwendet werden können. Außerdem wird erläutert, wie diese Änderungen verwendet werden können, um auf vorhandene Microsoft Graph-Ressourcen zu verweisen, die über andere Mechanismen als die Bereitstellung von Bicep-Dateien erstellt wurden.
Wichtig
Microsoft Graph Bicep befindet sich derzeit in DER VORSCHAU. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.
Azure- und Microsoft Graph-Ressourcenschlüssel
Microsoft Azure- und Microsoft Graph-APIs verwenden subtil verschiedene Mechanismen zum Erstellen von Ressourcen. Diese Unterschiede werden deutlicher, wenn Sie versuchen, beide Ressourcen in den gleichen Bicep-Vorlagendateien zu deklarieren.
Das Standardmuster der Microsoft Azure-API zum Erstellen von Ressourcen besteht darin, die HTTP PUT-Methode mit einem vom Client bereitgestellten eindeutigen Schlüssel zu verwenden, der aufgerufen wird name
. Dieser idempotent-Vorgang erstellt die Ressource mit dem bereitgestellten name
Wert, falls er nicht vorhanden ist, oder aktualisiert (ersetzen) falls vorhanden:
PUT /resourceCollection/{nameValue}
Das Standardmuster der Microsoft Graph-API zum Erstellen von Ressourcen besteht darin, die HTTP POST-Methode zu verwenden. Diese Methode ist nicht idempotent und gibt einen vom Dienst generierten eindeutigen ID-Schlüssel zurück, der aufgerufen wird id
.
POST /resourceCollection
Aktualisierungen vorhandener Ressourcen werden mithilfe der HTTP PATCH-Methode durchgeführt, die im Gegensatz zu PUT keine Ersatzsemantik verwendet.
Die Microsoft Graph-Erstellungssemantik dient den meisten Entwicklern gut, erfüllt aber nicht zwei wichtige Anforderungen für deklarative Dateivorlagen:
- Wiederholbarkeit: Eine Vorlagendateibereitstellung sollte mehrmals mit demselben Ergebnis ausgeführt werden, dass die Bereitstellungsumgebung den ressourcen entspricht, die in der Vorlagendatei deklariert sind. Diese Wiederholbarkeit ist für nichtidempotente Methoden wie POST nicht möglich.
- Vom Client bereitgestellte Schlüssel oder Namen: Das Erstellen und Verwalten einer deklarativen Vorlagendatei erfordert das Deklarieren von Ressourcennamen (oder von Client bereitgestellten Schlüsseln) vorab. Für die meisten Microsoft Graph-APIs sind vom Client bereitgestellte Schlüssel nicht möglich.
Von Microsoft Graph bereitgestellte Schlüssel
Einige Microsoft Graph-Ressourcen unterstützen eine vom Client bereitgestellte Schlüsseleigenschaft, wodurch ein idempotenter "upsert"-Mechanismus zum Erstellen der Ressource aktiviert wird, wenn sie nicht vorhanden ist oder aktualisiert wird. Diese vom Client bereitgestellte Schlüsseleigenschaft ist wahrscheinlicher ein alternativer Schlüssel, aber manchmal ist sie der Primärschlüssel.
PATCH /resourceCollection(clientProvidedAlternateKeyProperty='nameValue')
Wenn die Ressource mit einem alternativen Schlüssel erstellt wird, wird ein vom Dienst generierter Wert für die Primärschlüsseleigenschaft festgelegt.
Nur Ressourcen, die diesem Muster folgen, werden als Microsoft Graph-Bicep-Typen mit wenigen Ausnahmen verfügbar gemacht.
In der folgenden Tabelle sind die vom Client bereitgestellten Schlüsseleigenschaften für Microsoft Graph-Ressourcen aufgeführt, die in Bicep-Dateien unterstützt werden:
Microsoft Graph-Ressource | Client-bereitgestellte Schlüsseleigenschaft |
---|---|
Anwendungen | uniqueName |
Verbundidentitätsanmeldeinformationen | name |
App-Rolle zugewiesen | Implizit aus den Eigenschaftswerten, die das Objekt eindeutig identifizieren |
Gruppen | uniqueName |
OAuth2-Berechtigungserteilungen | Implizit aus den Eigenschaftswerten, die das Objekt eindeutig identifizieren |
Dienstprinzipale | appId |
Vorhandene Microsoft Graph-Ressourcen
Sie können auf vorhandene Microsoft Graph-Ressourcen in Bicep-Vorlagen verweisen, indem Sie die vom Client bereitgestellte Schlüsseleigenschaft verwenden. Ressourcen, die über HTTP POST erstellt wurden, verfügen möglicherweise nicht über diesen Eigenschaftensatz und erfordern ein einmaliges Ausfüllen.
Nach dem Festlegen kann die vom Client bereitgestellte Schlüsseleigenschaft die Ressource in einer Bicep-Datei für die erneute Bereitstellung deklariert werden. Verwenden Sie das vorhandene Schlüsselwort, um Die Eigenschaften der Ressource ohne erneute Bereitstellung zu lesen.
Wichtig
Die vom Client bereitgestellte Schlüsseleigenschaft kann nicht geändert werden, nachdem sie festgelegt wurde.