Overzicht van resource-onboarding van aangepaste Azure-resourceproviders

Onboarding van aangepaste azure-resourceproviders is een uitbreidbaarheidsmodel voor Azure-resourcetypen. Hiermee kunt u bewerkingen of beheer toepassen op bestaande Azure-resources op schaal. Zie Hoe Azure Custom Resource Providers Azure kunnen uitbreiden voor meer informatie. In dit artikel wordt het volgende beschreven:

  • Wat de onboarding van resources kan doen.
  • Basisbeginselen van onboarding van resources en hoe u deze kunt gebruiken.
  • Waar u handleidingen en codevoorbeelden kunt vinden om aan de slag te gaan.

Belangrijk

Aangepaste resourceproviders is momenteel in openbare preview. Deze preview-versie wordt geleverd zonder serviceovereenkomst en wordt niet aanbevolen voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.

Wat kan onboarding van resources doen?

Net als bij aangepaste resources van Azure Custom Resource Providers definieert onboarding van resources een contract waarmee onboardingaanvragen naar een eindpunt worden geproxydeert. In tegenstelling tot aangepaste resources maakt onboarding van resources geen nieuw resourcetype. In plaats daarvan kan de uitbreiding van bestaande resourcetypen worden toegestaan. En het onboarden van resources werkt met Azure Policy, zodat het beheer en de configuratie van resources op schaal kan worden uitgevoerd. Enkele voorbeelden van werkstromen voor het onboarden van resources:

  • Installeren en beheren op extensies van virtuele machines.
  • Standaardinstellingen voor Azure-opslagaccounts uploaden en configureren.
  • Schakel diagnostische basislijninstellingen op schaal in.

Basisbeginselen van onboarding van resources

U configureert resource-onboarding via aangepaste Azure-resourceproviders met behulp van resourcetypen Microsoft.CustomProviders/resourceProviders en Microsoft.CustomProviders/associations. Als u onboarding van resources voor een aangepaste resourceprovider wilt inschakelen, maakt u tijdens het configuratieproces een resourceType met de naam 'koppelingen' met een routingType dat 'Extension' bevat. Microsoft.CustomProviders/associations en Microsoft.CustomProviders/resourceProviders hoeven niet tot dezelfde resourcegroep te behoren.

Hier volgt een voorbeeld van een aangepaste Azure-resourceprovider:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://microsoft.com/"
      }
    ]
  },
  "location": "eastus"
}
Eigenschap Vereist? Beschrijving
naam Ja De naam van de eindpuntdefinitie. Voor het onboarden van resources moet de naam 'koppelingen' zijn.
routingType Yes Bepaalt het type contract met het eindpunt. Voor het onboarden van resources zijn de geldige routeringTypen 'Proxy,Cache,Extensie' en 'Webhook,Cache,Extensie'.
endpoint Ja Het eindpunt waarnaar de aanvragen worden gerouteerd. Hiermee worden het antwoord en eventuele neveneffecten van de aanvraag verwerkt.

Nadat u de aangepaste resourceprovider met het resourcetype koppelingen hebt gemaakt, kunt u zich richten op Microsoft.CustomProviders/associations. Microsoft.CustomProviders/associations is een extensieresource waarmee elke andere Azure-resource kan worden uitgebreid. Wanneer een exemplaar van Microsoft.CustomProviders/associations wordt gemaakt, wordt een eigenschap targetResourceId gebruikt. Dit moet een geldige resource-id van Microsoft.CustomProviders/resourceProviders of Microsoft.Solutions/applications zijn. In deze gevallen wordt de aanvraag doorgestuurd naar het resourcetype koppelingen op het microsoft.CustomProviders/resourceProviders-exemplaar dat u hebt gemaakt.

Notitie

Als een resource-id van Microsoft.Solutions/applications wordt opgegeven als targetResourceId, moet er een Microsoft.CustomProviders/resourceProviders zijn geïmplementeerd in de beheerde resourcegroep met de naam 'public'.

Voorbeeld van een koppeling van aangepaste Azure-resourceproviders:

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    ...
  }
}
Eigenschap Vereist? Beschrijving
targetResourceId Yes De resource-id van Microsoft.CustomProviders/resourceProviders of Microsoft.Solutions/applications.

Onboarding van resources gebruiken

Onboarding van resources werkt door andere resources uit te breiden met de extensieresource Microsoft.CustomProviders/associations. In het volgende voorbeeld wordt de aanvraag gedaan voor een virtuele machine, maar elke resource kan worden uitgebreid.

Eerst moet u een aangepaste resourceproviderresource maken met een koppelingsresourcetype. Hiermee declareert u de callback-URL die wordt gebruikt wanneer een bijbehorende Resource Microsoft.CustomProviders/associations wordt gemaakt, die is gericht op de aangepaste resourceprovider.

Voorbeeld van een aanvraag voor het maken van 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}"
}

Nadat u de aangepaste resourceprovider hebt gemaakt, kunt u zich richten op andere resources en de neveneffecten van de aangepaste resourceprovider op deze resources toepassen.

Voorbeeld van microsoft.customproviders/koppelingen maken aanvraag:

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"
    }
  }
}

Deze aanvraag wordt vervolgens doorgestuurd naar het eindpunt dat is opgegeven in de aangepaste resourceprovider die u hebt gemaakt, waarnaar wordt verwezen door de targetResourceId in dit formulier:

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"
    }
  }
}

Het eindpunt moet reageren met een toepassing/json Content-Type en een geldige JSON-antwoordtekst. Velden die worden geretourneerd onder het eigenschappenobject van de JSON, worden toegevoegd aan het retourantwoord van de koppeling.

Ondersteuning vragen

Als u vragen hebt over de ontwikkeling van aangepaste Azure-resourceproviders, kunt u deze vragen stellen op Stack Overflow. Misschien is een soortgelijke vraag al eerder gesteld en beantwoord, dus controleer dit eerst vóór u een vraag stelt. Voeg de tag azure-custom-providers toe om snel antwoord te krijgen.

Volgende stappen

In dit artikel hebt u geleerd over aangepaste resourceproviders. Zie voor meer informatie de volgende artikelen: