Referentiemateriaal voor aangepaste resource-proxy
In dit artikel worden de vereisten besproken voor eindpunten die aangepaste proxyresources implementeren. Als u niet bekend bent met aangepaste resourceproviders van Azure, raadpleegt u het overzicht van aangepaste resourceproviders.
Een eindpunt voor een proxyresource definiëren
Een proxyresource kan worden gemaakt door de routingType
op te geven op 'Proxy'.
Voorbeeld van een aangepaste resourceprovider:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"routingType": "Proxy",
"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 proxyresource-eindpunt implementeert, moet de aanvraag en het antwoord voor de nieuwe API in Azure verwerken. In dit geval genereert de #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 id
velden , name
en type
zijn niet vereist, maar ze zijn wel nodig om de aangepaste resource te integreren met een bestaand Azure-ecosysteem.
Voorbeeldresource:
{
"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"
}
}
}
Naslaginformatie over parameters:
Eigenschap | Voorbeeld | Beschrijving |
---|---|---|
naam | {myCustomResourceName}' | De naam van de aangepaste resource. |
type | 'Microsoft.CustomProviders/resourceProviders/{resourceTypeName}' | De naamruimte van het resourcetype. |
id | '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{myCustomResourceName}' |
De resource-id. |
Een aangepaste resource maken
Binnenkomende Azure API-aanvraag:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resource-provider-name}/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".
Antwoord van eindpunt:
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"
}
}
}
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:
- 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".
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
Deze aanvraag wordt vervolgens doorgestuurd naar het eindpunt in het volgende formulier:
GET 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".
Antwoord van eindpunt:
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"
}
}
}
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
Deze aanvraag wordt vervolgens doorgestuurd naar het eindpunt in het volgende formulier:
GET 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
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 lijst met resources moet onder de eigenschap op het hoogste niveau
value
worden geplaatst.
Antwoord van eindpunt:
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"
}
}
}
]
}
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 resourcecache