Översikt över resursregistrering för anpassade Resursproviders i Azure

Azure Custom Resource Providers-resursregistrering är en utökningsmodell för Azure-resurstyper. Det gör att du kan tillämpa åtgärder eller hantering för befintliga Azure-resurser i stor skala. Mer information finns i Så här kan anpassade Azure-resursproviders utöka Azure. I den här artikeln beskrivs:

  • Vad resursregistrering kan göra.
  • Grundläggande om resursregistrering och hur du använder den.
  • Här hittar du guider och kodexempel för att komma igång.

Viktigt

Anpassade resursprovidrar finns för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal och vi rekommenderar den inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan ha begränsade funktioner. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Vad kan resursregistrering göra?

På samma sätt som anpassade resursproviders i Azure definierar resursregistrering ett kontrakt som proxy för "onboarding"-begäranden till en slutpunkt. Till skillnad från anpassade resurser skapar inte resursregistrering en ny resurstyp. I stället tillåts tillägget av befintliga resurstyper. Och resursregistrering fungerar med Azure Policy, så hantering och konfiguration av resurser kan göras i stor skala. Några exempel på arbetsflöden för resursregistrering:

  • Installera och hantera på tillägg för virtuella datorer.
  • Ladda upp och konfigurera standardinställningar för Azure Storage-konton.
  • Aktivera diagnostikinställningar för baslinjen i stor skala.

Grundläggande om resursregistrering

Du konfigurerar resursregistrering via Anpassade Resursprovidrar i Azure med hjälp av resurstyperna Microsoft.CustomProviders/resourceProviders och Microsoft.CustomProviders/associations. Om du vill aktivera resursregistrering för en anpassad resursprovider skapar du under konfigurationsprocessen en resourceType med namnet "associations" med en routingType som innehåller "Extension". Microsoft.CustomProviders/associations och Microsoft.CustomProviders/resourceProviders behöver inte tillhöra samma resursgrupp.

Här är ett exempel på en anpassad Azure-resursprovider:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://microsoft.com/"
      }
    ]
  },
  "location": "eastus"
}
Egenskap Obligatoriskt? Beskrivning
name Yes Namnet på slutpunktsdefinitionen. För resursregistrering måste namnet vara "associationer".
routingType Yes Avgör typen av kontrakt med slutpunkten. För resursregistrering är giltiga routingTypes "Proxy,Cache,Extension" och "Webhook,Cache,Extension".
slutpunkt Yes Slutpunkten som begäranden ska dirigeras till. Detta kommer att hantera svaret och eventuella biverkningar av begäran.

När du har skapat den anpassade resursprovidern med resurstypen associationer kan du använda Microsoft.CustomProviders/associations som mål. Microsoft.CustomProviders/associations är en tilläggsresurs som kan utöka alla andra Azure-resurser. När en instans av Microsoft.CustomProviders/associations skapas tar den ett egenskapsmålResourceId, som ska vara ett giltigt resurs-ID för Microsoft.CustomProviders/resourceProviders eller Microsoft.Solutions/applications. I dessa fall vidarebefordras begäran till resurstypen associationer på den Microsoft.CustomProviders/resourceProviders-instans som du skapade.

Anteckning

Om ett resurs-ID för Microsoft.Solutions/applications anges som targetResourceId måste ett Microsoft.CustomProviders/resourceProviders distribueras i den hanterade resursgruppen med namnet "public".

Exempelassociation för anpassade Azure-resursproviders:

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    ...
  }
}
Egenskap Obligatoriskt? Beskrivning
targetResourceId Yes Resurs-ID för Microsoft.CustomProviders/resourceProviders eller Microsoft.Solutions/applications.

Så här använder du resursregistrering

Resursregistrering fungerar genom att utöka andra resurser med tilläggsresursen Microsoft.CustomProviders/associations. I följande exempel görs begäran för en virtuell dator, men alla resurser kan utökas.

Först måste du skapa en anpassad resursproviderresurs med en associationsresurstyp. Detta deklarerar motringnings-URL:en som ska användas när en motsvarande Microsoft.CustomProviders/associations-resurs skapas, som är avsedd för den anpassade resursprovidern.

Exempel på begäran om att skapa 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}"
}

När du har skapat den anpassade resursprovidern kan du rikta in dig på andra resurser och tillämpa sidoeffekterna av den anpassade resursprovidern på dem.

Exempelbegäran för Microsoft.CustomProviders/associations create:

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

Den här begäran vidarebefordras sedan till slutpunkten som anges i den anpassade resursprovidern som du skapade, som refereras till av targetResourceId i det här formuläret:

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

Slutpunkten ska svara med ett program/json Content-Type och en giltig JSON-svarstext. Fält som returneras under egenskapsobjektet för JSON läggs till i associationens retursvar.

Få hjälp

Om du har frågor om utveckling av anpassade Azure-resursproviders kan du fråga dem på Stack Overflow. En liknande fråga kanske redan har besvarats, så kontrollera först innan du publicerar. Lägg till taggen azure-custom-providers för att få ett snabbt svar!

Nästa steg

I den här artikeln har du lärt dig om anpassade resursprovidrar. Se de här artiklarna om du vill veta mer: