Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln går igenom kraven för slutpunkter som implementerar anpassade proxyresurser. Om du inte är bekant med anpassade Azure-resursprovidrar kan du läsa översikten över anpassade resursprovidrar.
Definiera en proxyresursslutpunkt
Du kan skapa en proxyresurs genom att routingType
ange till "Proxy".
Exempel på anpassad resursprovider:
{
"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}"
}
Skapa en proxyresursslutpunkt
En slutpunkt som implementerar en "Proxy"-resursslutpunkt måste hantera begäran och svar för det nya API:et i Azure. I det här fallet genererar #resourceType* ett nytt Azure-resurs-API för PUT
, GET
och DELETE
för att utföra CRUD på en enskild resurs, samt GET
för att hämta alla befintliga resurser.
Anteckning
Fälten id
, name
och type
krävs inte, men de behövs för att integrera den anpassade resursen med ett befintligt Azure-ekosystem.
Exempelresurs:
{
"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"
}
}
}
Parameterreferens:
Egenskap | Exempel | Beskrivning |
---|---|---|
name | {myCustomResourceName} | Namnet på den anpassade resursen. |
typ | 'Microsoft.CustomProviders/resourceProviders/{resourceTypeName}' | Namnområdet för resurstyp. |
id | '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{myCustomResourceName}' |
Resurs-ID:t. |
Skapa en anpassad resurs
Inkommande begäran för Azure API:
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"
}
}
}
Den här begäran vidarebefordras sedan till slutpunkten i 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}/myCustomResources/{myCustomResourceName}
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Svaret från slutpunkten vidarebefordras sedan tillbaka till kunden. Svaret bör returnera:
- Ett giltigt JSON-objektdokument. Alla matriser och strängar ska vara kapslade under ett översta objekt.
- Rubriken
Content-Type
ska vara inställd på "application/json; charset=utf-8".
Svar på slutpunkt:
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"
}
}
}
Svar från anpassad Azure-resursprovider:
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"
}
}
}
Ta bort en anpassad resurs
Inkommande begäran för Azure API:
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
Den här begäran vidarebefordras sedan till slutpunkten i formuläret:
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}
Svaret från slutpunkten vidarebefordras sedan tillbaka till kunden. Svaret bör returnera:
- Giltigt JSON-objektdokument. Alla matriser och strängar ska vara kapslade under ett översta objekt.
- Rubriken
Content-Type
ska vara inställd på "application/json; charset=utf-8".
Svar på slutpunkt:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Svar från anpassad Azure-resursprovider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Hämta en anpassad resurs
Inkommande begäran för Azure API:
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
Den här begäran vidarebefordras sedan till slutpunkten i formuläret:
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}
Svaret från slutpunkten vidarebefordras sedan tillbaka till kunden. Svaret bör returnera:
- Ett giltigt JSON-objektdokument. Alla matriser och strängar ska vara kapslade under ett översta objekt.
- Rubriken
Content-Type
ska vara inställd på "application/json; charset=utf-8".
Svar på slutpunkt:
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"
}
}
}
Svar från anpassad Azure-resursprovider:
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"
}
}
}
Räkna upp alla anpassade resurser
Inkommande begäran för Azure API:
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
Den här begäran vidarebefordras sedan till slutpunkten i formuläret:
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
Svaret från slutpunkten vidarebefordras sedan tillbaka till kunden. Svaret bör returnera:
- Ett giltigt JSON-objektdokument. Alla matriser och strängar ska vara kapslade under ett översta objekt.
- Rubriken
Content-Type
ska vara inställd på "application/json; charset=utf-8". - Listan över resurser ska placeras under egenskapen på den översta nivån
value
.
Svar på slutpunkt:
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"
}
}
}
]
}
Svar från anpassad Azure-resursprovider:
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"
}
}
}
]
}