Özel kaynak ara sunucu başvurusu

Bu makalede ara sunucu özel kaynakları uygulayan uç noktaların gereksinimleri gözden geçirilecektir. Azure Özel Kaynak Sağlayıcıları hakkında bilginiz yoksa , özel kaynak sağlayıcılarına genel bakışa bakın.

Ara sunucu kaynak uç noktası tanımlama

"Proxy" olarak belirtilerek routingType bir ara sunucu kaynağı oluşturulabilir.

Örnek özel kaynak sağlayıcısı:

{
  "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}"
}

Ara sunucu kaynak uç noktası oluşturma

"Proxy" kaynak uç noktası uygulayan bir uç nokta, Azure'daki yeni API'nin isteğini ve yanıtını işlemelidir. Bu durumda, #resourceType* tek bir kaynakta CRUD gerçekleştirmek ve DELETE mevcut tüm kaynakları almak için , GETve için PUTyeni bir Azure kaynak GET API'sini oluşturur.

Not

id, nameve type alanları gerekli değildir, ancak özel kaynağı mevcut bir Azure ekosistemiyle tümleştirmek için gereklidir.

Örnek kaynak:

{
    "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"
        }
    }
}

Parametre başvurusu:

Özellik Örnek Açıklama
name '{myCustomResourceName}' Özel kaynağın adı.
tür 'Microsoft.CustomProviders/resourceProviders/{resourceTypeName}' Kaynak türü ad alanı.
kimlik '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/
myCustomResources/{myCustomResourceName}'
Kaynak kimliği.

Özel kaynak oluşturma

Azure API gelen isteği:

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"
        }
    }
}

Bu istek daha sonra şu biçimde uç noktaya iletilir:

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"
        }
    }
}

Uç noktadan gelen yanıt daha sonra müşteriye geri iletilir. Yanıt şu şekilde döndürmelidir:

  • Geçerli bir JSON nesne belgesi. Tüm diziler ve dizeler üst nesnenin altına yerleştirilmelidir.
  • Üst Content-Type bilgi "application/json; charset=utf-8".

Uç nokta yanıtı:

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"
        }
    }
}

Azure Özel Kaynak Sağlayıcısı yanıtı:

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"
        }
    }
}

Özel kaynağı kaldırma

Azure API gelen isteği:

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

Bu istek daha sonra şu biçimde uç noktaya iletilir:

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}

Uç noktadan gelen yanıt daha sonra müşteriye geri iletilir. Yanıt şu şekilde döndürmelidir:

  • Geçerli JSON nesne belgesi. Tüm diziler ve dizeler üst nesnenin altına yerleştirilmelidir.
  • Üst Content-Type bilgi "application/json; charset=utf-8".

Uç nokta yanıtı:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

Azure Özel Kaynak Sağlayıcısı yanıtı:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

Özel kaynak alma

Azure API gelen isteği:

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

Bu istek daha sonra şu biçimde uç noktaya iletilir:

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}

Uç noktadan gelen yanıt daha sonra müşteriye geri iletilir. Yanıt şu şekilde döndürmelidir:

  • Geçerli bir JSON nesne belgesi. Tüm diziler ve dizeler üst nesnenin altına yerleştirilmelidir.
  • Üst Content-Type bilgi "application/json; charset=utf-8".

Uç nokta yanıtı:

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"
        }
    }
}

Azure Özel Kaynak Sağlayıcısı yanıtı:

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"
        }
    }
}

Tüm özel kaynakları listeleme

Azure API gelen isteği:

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

Bu istek daha sonra şu biçimde uç noktaya iletilir:

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

Uç noktadan gelen yanıt daha sonra müşteriye geri iletilir. Yanıt şu şekilde döndürmelidir:

  • Geçerli bir JSON nesne belgesi. Tüm diziler ve dizeler üst nesnenin altına yerleştirilmelidir.
  • Üst Content-Type bilgi "application/json; charset=utf-8".
  • Kaynak listesi en üst düzey value özelliğin altına yerleştirilmelidir.

Uç nokta yanıtı:

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"
                }
            }
        }
    ]
}

Azure Özel Kaynak Sağlayıcısı yanıtı:

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"
                }
            }
        }
    ]
}

Sonraki adımlar