Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano wymagania dotyczące punktów końcowych implementowania zasobów niestandardowych serwera proxy. Jeśli nie znasz niestandardowych dostawców zasobów platformy Azure, zapoznaj się z omówieniem niestandardowych dostawców zasobów.
Definiowanie punktu końcowego zasobu serwera proxy
Zasób serwera proxy można utworzyć, określając wartość routingType na "Proxy".
Przykładowy niestandardowy dostawca zasobów:
{
"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}"
}
Tworzenie punktu końcowego zasobu serwera proxy
Punkt końcowy implementujący zasób "Proxy" musi obsługiwać żądanie i odpowiedź dla nowego API na platformie Azure. W takim przypadku #resourceType* wygeneruje nowy interfejs API zasobów platformy Azure dla PUT, GETi DELETE do wykonania operacji CRUD w jednym zasobie, a także GET do pobrania wszystkich istniejących zasobów.
Uwaga / Notatka
Pola id, namei type nie są wymagane, ale są potrzebne do zintegrowania zasobu niestandardowego z istniejącym ekosystemem platformy Azure.
Przykładowy zasób:
{
"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"
}
}
}
Referencja parametrów:
| Majątek | Przykład | Description |
|---|---|---|
| nazwa | "{myCustomResourceName}" | Nazwa zasobu niestandardowego. |
| typ | "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}" | Przestrzeń nazw typu zasobu. |
| id | '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{myCustomResourceName}" |
Identyfikator zasobu. |
Tworzenie zasobu niestandardowego
Przychodzące żądanie API Azure:
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"
}
}
}
To żądanie zostanie następnie przekazane do punktu końcowego w formularzu:
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"
}
}
}
Odpowiedź z punktu końcowego jest następnie przesyłana z powrotem do klienta. Odpowiedź powinna zostać zwrócona:
- Prawidłowy dokument obiektu JSON. Wszystkie tablice i ciągi powinny być zagnieżdżone w obiekcie nadrzędnym.
- Nagłówek
Content-Typepowinien być ustawiony na wartość "application/json; charset=utf-8".
Odpowiedź punktu końcowego:
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"
}
}
}
Odpowiedź niestandardowego dostawcy zasobów platformy Azure:
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"
}
}
}
Usuwanie zasobu niestandardowego
Przychodzące żądanie API Azure:
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
To żądanie zostanie następnie przekazane do punktu końcowego w formularzu:
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}
Odpowiedź z punktu końcowego jest następnie przesyłana z powrotem do klienta. Odpowiedź powinna zostać zwrócona:
- Prawidłowy dokument obiektu JSON. Wszystkie tablice i ciągi powinny być zagnieżdżone w obiekcie nadrzędnym.
- Nagłówek
Content-Typepowinien być ustawiony na wartość "application/json; charset=utf-8".
Odpowiedź punktu końcowego:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Odpowiedź niestandardowego dostawcy zasobów platformy Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Pobieranie zasobu niestandardowego
Przychodzące żądanie API Azure:
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
To żądanie zostanie następnie przekazane do punktu końcowego w formularzu:
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}
Odpowiedź z punktu końcowego jest następnie przesyłana z powrotem do klienta. Odpowiedź powinna zostać zwrócona:
- Prawidłowy dokument obiektu JSON. Wszystkie tablice i ciągi powinny być zagnieżdżone w obiekcie nadrzędnym.
- Nagłówek
Content-Typepowinien być ustawiony na wartość "application/json; charset=utf-8".
Odpowiedź punktu końcowego:
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"
}
}
}
Odpowiedź niestandardowego dostawcy zasobów platformy Azure:
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"
}
}
}
Wyliczanie wszystkich zasobów niestandardowych
Przychodzące żądanie API Azure:
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
To żądanie zostanie następnie przekazane do punktu końcowego w formularzu:
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
Odpowiedź z punktu końcowego jest następnie przesyłana z powrotem do klienta. Odpowiedź powinna zostać zwrócona:
- Prawidłowy dokument obiektu JSON. Wszystkie tablice i ciągi powinny być zagnieżdżone w obiekcie nadrzędnym.
- Nagłówek
Content-Typepowinien być ustawiony na wartość "application/json; charset=utf-8". - Lista zasobów powinna zostać umieszczona w ramach właściwości najwyższego poziomu
value.
Odpowiedź punktu końcowego:
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"
}
}
}
]
}
Odpowiedź niestandardowego dostawcy zasobów platformy Azure:
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"
}
}
}
]
}
Dalsze kroki
- Omówienie niestandardowych dostawców zasobów platformy Azure
- Szybki start: tworzenie niestandardowego dostawcy zasobów platformy Azure i wdrażanie zasobów niestandardowych
- Samouczek: tworzenie akcji niestandardowych i zasobów na platformie Azure
- Instrukcje: dodawanie akcji niestandardowych do interfejsu API REST platformy Azure
- Dokumentacja: dokumentacja niestandardowej pamięci podręcznej zasobów