Referentiemateriaal voor aangepaste resource-cache
In dit artikel worden de vereisten besproken voor eindpunten die aangepaste cacheresources implementeren. Als u niet bekend bent met aangepaste resourceproviders van Azure, raadpleegt u het overzicht van aangepaste resourceproviders.
Een eindpunt voor een cacheresource definiëren
Een proxyresource kan worden gemaakt door de routingType
op te geven op 'Proxy, Cache'.
Voorbeeld van een aangepaste resourceprovider:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"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 proxyresource-eindpunt bouwen
Een eindpunt dat een resource-eindpunt proxy, cache implementeert, moet de aanvraag en het antwoord voor de nieuwe API in Azure verwerken. 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.
Notitie
De Azure-API genereert de aanvraagmethoden PUT
, GET
en DELETE
, maar het cache-eindpunt hoeft alleen en DELETE
te verwerkenPUT
.
Het is raadzaam dat het eindpunt ook implementeert GET
.
Een aangepaste resource maken
Binnenkomende Azure API-aanvraag:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Deze aanvraag wordt vervolgens doorgestuurd naar het eindpunt in het volgende 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}/myCustomResources/{myCustomResourceName}
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Het antwoord van het eindpunt wordt vervolgens doorgestuurd naar de klant. Het antwoord moet het volgende retourneren:
- Een geldig JSON-objectdocument. Alle matrices en tekenreeksen moeten worden genest onder een bovenste object.
- De
Content-Type
header moet worden ingesteld op 'application/json; charset=utf-8". - De aangepaste resourceprovider overschrijft de
name
velden ,type
enid
voor de aanvraag. - De aangepaste resourceprovider retourneert alleen velden onder het
properties
object voor een cache-eindpunt.
Antwoord van eindpunt:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
De name
velden , id
en type
worden automatisch gegenereerd voor de aangepaste resource door de aangepaste resourceprovider.
Antwoord van aangepaste Azure-resourceprovider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Een aangepaste resource verwijderen
Binnenkomende Azure API-aanvraag:
Delete https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Deze aanvraag wordt vervolgens doorgestuurd naar het eindpunt in het volgende formulier:
Delete 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}/myCustomResources/{myCustomResourceName}
Het antwoord van het eindpunt wordt vervolgens doorgestuurd naar de klant. Het antwoord moet het volgende retourneren:
- Een geldig JSON-objectdocument. Alle matrices en tekenreeksen moeten worden genest onder een bovenste object.
- De
Content-Type
header moet worden ingesteld op 'application/json; charset=utf-8". - De aangepaste resourceprovider van Azure verwijdert het item alleen uit de cache als er een antwoord op het niveau van 200 wordt geretourneerd. Zelfs als de resource niet bestaat, moet het eindpunt 204 retourneren.
Antwoord van eindpunt:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Antwoord van aangepaste Azure-resourceprovider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Een aangepaste resource ophalen
Binnenkomende Azure API-aanvraag:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
De aanvraag wordt niet doorgestuurd naar het eindpunt.
Antwoord van aangepaste Azure-resourceprovider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Alle aangepaste resources opsommen
Binnenkomende Azure API-aanvraag:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
De aanvraag wordt niet doorgestuurd naar het eindpunt.
Antwoord van aangepaste Azure-resourceprovider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"value" : [
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
]
}
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