Aangepaste resources toevoegen aan Azure REST API
In dit artikel worden de vereisten en aanbevolen procedures beschreven voor het maken van eindpunten van de Azure Custom Resource Provider waarmee aangepaste resources worden geïmplementeerd. Als u niet bekend bent met aangepaste resourceproviders van Azure, raadpleegt u het overzicht van aangepaste resourceproviders.
Een resource-eindpunt definiëren
Een eindpunt is een URL die verwijst naar een service, waarmee het onderliggende contract tussen het eindpunt en Azure wordt geïmplementeerd. Het eindpunt wordt gedefinieerd in de aangepaste resourceprovider en kan elke openbaar toegankelijke URL zijn. Het onderstaande voorbeeld bevat een resourceType met de naam myCustomResource
geïmplementeerd door endpointURL
.
Voorbeeld van ResourceProvider:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResource",
"routingType": "Proxy, Cache",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus",
"type": "Microsoft.CustomProviders/resourceProviders",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
"name": "{resourceProviderName}"
}
Een resource-eindpunt bouwen
Een eindpunt dat een resourceType implementeert, moet de aanvraag en het antwoord voor de nieuwe API in Azure verwerken. Wanneer een aangepaste resourceprovider met een resourceType wordt gemaakt, wordt er een nieuwe set API's in Azure gegenereerd. In dit geval genereert resourceType een nieuwe Azure-resource-API voor PUT
, GET
en DELETE
om CRUD uit te voeren op één resource en GET
om alle bestaande resources op te halen:
Eén resource bewerken (PUT
, GET
en DELETE
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource/{myCustomResourceName}
Alle resources ophalen (GET
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource
Voor aangepaste resources bieden aangepaste resourceproviders twee typen routeringstypen: 'Proxy
' en 'Proxy, Cache
'.
proxyrouteringstype
Het routeringstypeProxy
geeft alle aanvraagmethoden aan het eindpunt dat is opgegeven in de aangepaste resourceprovider. Wanneer te gebruiken:Proxy
- Volledige controle over het antwoord is vereist.
- Systemen integreren met bestaande resources.
Zie de naslaginformatie over aangepaste resourceproxy's voor meer informatie overProxy
resources
Routeringstype proxycache
De routeringType-proxy'sProxy, Cache
en DELETE
aanvraagmethoden alleen PUT
voor het eindpunt dat is opgegeven in de aangepaste resourceprovider. De aangepaste resourceprovider retourneert GET
automatisch aanvragen op basis van wat deze in de cache heeft opgeslagen. Als een aangepaste resource is gemarkeerd met cache, voegt de aangepaste resourceprovider ook velden toe/overschrijft in het antwoord om de API's compatibel te maken met Azure. Wanneer te gebruiken:Proxy, Cache
- Een nieuw systeem maken dat geen bestaande resources heeft.
- Werken met een bestaand Azure-ecosysteem.
Zie de naslaginformatie over de aangepaste resourcecache voor meer informatie overProxy, Cache
resources
Een aangepaste resource maken
Er zijn twee belangrijke manieren om een aangepaste resource te maken op basis van een aangepaste resourceprovider:
- Azure CLI
- Azure Resource Manager-sjablonen
Azure CLI
Een aangepaste resource maken:
az resource create --is-full-object \
--id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName} \
--properties \
'{
"location": "eastus",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
}
}'
Parameter | Vereist | Beschrijving |
---|---|---|
is-full-object | Ja | Geeft aan dat het eigenschappenobject andere opties bevat, zoals locatie, tags, SKU en/of plan. |
id | Ja | De resource-id van de aangepaste resource. Dit moet bestaan buiten de ResourceProvider |
properties | Ja | De aanvraagbody die naar het eindpunt wordt verzonden. |
Een aangepaste Azure-resource verwijderen:
az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parameter | Vereist | Beschrijving |
---|---|---|
id | Ja | De resource-id van de aangepaste resource. Dit moet bestaan buiten de ResourceProvider. |
Een aangepaste Azure-resource ophalen:
az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parameter | Vereist | Beschrijving |
---|---|---|
id | Ja | De resource-id van de aangepaste resource. Dit moet bestaan buiten de ResourceProvider |
Azure Resource Manager-sjabloon
Notitie
Resources vereisen dat het antwoord een geschikte id
, name
en type
van het eindpunt bevat.
Azure Resource Manager-sjablonen vereisen dat id
, name
en type
correct worden geretourneerd vanuit het downstream-eindpunt. Een geretourneerd resourceantwoord moet de volgende notatie hebben:
Voorbeeld van eindpuntantwoord :
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{customResourceName}",
"name": "{customResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}"
}
Voorbeeld van Azure Resource Manager-sjabloon:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}",
"name": "{resourceProviderName}/{customResourceName}",
"apiVersion": "2018-09-01-preview",
"location": "eastus",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
}
}
]
}
Parameter | Vereist | Beschrijving |
---|---|---|
resourceTypeName | Ja | De naam van het resourceType dat is gedefinieerd in de aangepaste resourceprovider. |
resourceProviderName | Ja | De naam van het exemplaar van de aangepaste resourceprovider. |
customResourceName | Ja | De naam van de aangepaste resource. |
Volgende stappen
- Overzicht van aangepaste Azure-resourceproviders
- Quickstart: Aangepaste Azure-resourceprovider maken en aangepaste resources implementeren
- Zelfstudie: Aangepaste acties en resources maken in Azure
- Procedure: Aangepaste acties toevoegen aan Azure REST API
- Naslaginformatie: Naslaginformatie over aangepaste resourceproxy
- Naslaginformatie: Naslaginformatie over aangepaste resourcecache