Übersicht über das Onboarding benutzerdefinierter Azure-Ressourcenanbieter

Das Onboarding von Ressourcen für benutzerdefinierte Azure-Ressourcenanbietern ist ein Erweiterbarkeitsmodell für Azure-Ressourcentypen. Damit können Sie Vorgänge oder Verwaltungen auf vorhandene Azure-Ressourcen im großen Maßstab anwenden. Weitere Informationen finden Sie unter Wie Azure Custom Resource Providers Azure erweitern können. Dieser Artikel beschreibt Folgendes:

  • Was die Einbindung von Ressourcen bewirken kann.
  • Grundlagen des Ressourcen-Onboardings und wie es verwendet wird.
  • Wo finden Sie Leitfäden und Codebeispiele für die ersten Schritte.

Von Bedeutung

Benutzerdefinierte Ressourcenanbieter befinden sich derzeit in der öffentlichen Vorschau. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Bestimmte Features werden möglicherweise nicht unterstützt oder haben eingeschränkte Funktionen. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Was kann die Einarbeitung von Ressourcen bewirken?

Ähnlich wie bei benutzerdefinierten Ressourcen von benutzerdefinierten Azure-Ressourcenanbietern wird beim Onboarding von Ressourcen ein Vertrag definiert, der „Onboardinganforderungen“ per Proxy an einen Endpunkt weiterleitet. Im Gegensatz zu benutzerdefinierten Ressourcen erstellt das Ressourcen-Onboarding keinen neuen Ressourcentyp. Stattdessen ermöglicht sie die Erweiterung vorhandener Ressourcentypen. Und das Ressourcen-Onboarding funktioniert mit Azure-Richtlinien, sodass die Verwaltung und Konfiguration von Ressourcen skaliert werden kann. Einige Beispiele für Workflows für das Onboarding von Ressourcen:

  • Installieren und verwalten Sie Erweiterungen auf virtuellen Maschinen.
  • Standardeinstellungen für Azure-Speicherkonten hochladen und konfigurieren.
  • Aktivieren Sie die Basiseinstellungen für Diagnosen in großem Maßstab.

Grundlagen des Ressourcen-Onboardings

Sie konfigurieren das Ressourcenonboarding über benutzerdefinierte Azure-Ressourcenanbieter mit den Ressourcentypen „Microsoft.CustomProviders/resourceProviders“ und „Microsoft.CustomProviders/associations“. Um das Onboarding von Ressourcen für einen benutzerdefinierten Ressourcenanbieter zu ermöglichen, erstellen Sie während der Konfiguration einen resourceType mit der Bezeichnung „associations“ mit einem resourceType, der „Extension“ enthält. Die Microsoft.CustomProviders/associations und Microsoft.CustomProviders/resourceProviders müssen nicht zur gleichen Ressourcengruppe gehören.

Hier ist ein Beispiel für einen benutzerdefinierten Azure-Ressourcenanbieter:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://microsoft.com/"
      }
    ]
  },
  "location": "eastus"
}
Eigentum Erforderlich? Description
name Yes Der Name der Endpunktdefinition. Für das Ressourcenonboarding muss der Name „associations“ lauten.
routingType Yes Bestimmt den Vertragstyp mit dem Endpunkt. Für das Ressourcen-Onboarding sind die gültigen routingTypes "Proxy,Cache,Extension" und "Webhook,Cache,Extension".
endpoint Yes Der Endpunkt, an den die Anforderungen weitergeleitet werden sollen. Hiermit werden die Antwort sowie alle Nebenwirkungen der Anforderung verarbeitet.

Nachdem Sie den benutzerdefinierten Ressourcenanbieter mit dem Ressourcentyp „associations“ erstellt haben, können Sie das Ziel mithilfe von „Microsoft.CustomProviders/associations“ konfigurieren. Microsoft.CustomProviders/associations ist eine Erweiterungsressource, die jede andere Azure-Ressource erweitern kann. Wenn eine Instanz von Microsoft.CustomProviders/Associations erstellt wird, wird eine Eigenschaft targetResourceId verwendet, die eine gültige Ressourcen-ID für Microsoft.CustomProviders/resourceProviders oder Microsoft.Solutions/applications sein sollte. In diesen Fällen wird die Anforderung an den Assoziationsressourcentyp in der von Ihnen erstellten Instanz "Microsoft.CustomProviders/resourceProviders" weitergeleitet.

Hinweis

Wenn eine Microsoft.Solutions/Applications-Ressourcen-ID als targetResourceId bereitgestellt wird, muss ein Microsoft.CustomProviders/resourceProviders in der verwalteten Ressourcengruppe mit dem Namen "public" bereitgestellt werden.

Beispielzuordnung für benutzerdefinierte Azure-Ressourcenanbieter:

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    ...
  }
}
Eigentum Erforderlich? Description
targetResourceId Yes Die Ressourcen-ID der Microsoft.CustomProviders/resourceProviders oder Microsoft.Solutions/Applications.

Verwenden des Ressourcenonboardings

Das Onboarding von Ressourcen erfolgt, indem andere Ressourcen mithilfe der Erweiterungsressource „Microsoft.CustomProviders/associations“ erweitert werden. Im folgenden Beispiel wird die Anforderung für einen virtuellen Computer gestellt, aber jede Ressource kann erweitert werden.

Zunächst müssen Sie eine benutzerdefinierte Ressourcenanbieter-Ressource mit einem Ressourcentyp „associations“ erstellen. Dadurch wird die Rückruf-URL deklariert, die verwendet wird, wenn eine entsprechende Microsoft.CustomProviders/associations-Ressource erstellt wird, die auf den benutzerdefinierten Ressourcenanbieter abzielt.

Beispiel zum Erstellen einer Anfrage für Microsoft.CustomProviders/resourceProviders:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://{myCustomEndpoint}/"
      }
    ]
  },
  "location": "{location}"
}

Nachdem Sie den benutzerdefinierten Ressourcenanbieter erstellt haben, können Sie auf andere Ressourcen abzielen und die Nebenwirkungen des benutzerdefinierten Ressourcenanbieters darauf anwenden.

Beispielanforderungen zum Erstellen von „Microsoft.CustomProviders/associations“:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.CustomProviders/associations/{associationName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
  }
}

Diese Anforderung wird dann an den endpunkt weitergeleitet, der im von Ihnen erstellten benutzerdefinierten Ressourcenanbieter angegeben ist, auf den die targetResourceId in diesem Formular verweist:

PUT https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/associations/{associationName}
X-MS-CustomProviders-ExtensionPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.CustomProviders/associations/{associationName}
X-MS-CustomProviders-ExtendedResource: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}

{
  "properties": {
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
  }
}

Der Endpunkt sollte mit einer Anwendung/json Content-Type und einem gültigen JSON-Antworttext antworten. Felder, die im JSON-Objekt properties zurückgegeben werden, werden zur Rückantwort von „association“ hinzugefügt.

Hilfe erhalten

Wenn Sie Fragen zur Entwicklung von benutzerdefinierten Azure-Ressourcenanbietern haben, fragen Sie sie auf Stack Overflow. Eine ähnliche Frage wurde möglicherweise bereits beantwortet, also überprüfen Sie zuerst vor der Veröffentlichung. Fügen Sie das Tag azure-custom-providers hinzu, um eine schnelle Antwort zu erhalten!

Nächste Schritte

In diesem Artikel haben Sie mehr über benutzerdefinierte Ressourcenanbieter erfahren. Weitere Informationen finden Sie in den folgenden Artikeln: