Referensi cache sumber daya kustom

Artikel ini akan membahas persyaratan untuk titik akhir yang menerapkan sumber daya kustom cache. Jika Anda tidak terbiasa dengan Azure Custom Resource Providers, lihat gambaran umum penyedia sumber daya kustom.

Menentukan titik akhir sumber daya cache

Sumber daya proksi dapat dibuat dengan menentukan routingType ke "Proxy, Cache".

Penyedia sumber daya kustom sampel:

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

Membuat titik akhir sumber daya proksi

Titik akhir yang mengimplementasikan titik akhir sumber daya “Proxy, Cache” harus menangani permintaan dan respons untuk API baru di Azure. Dalam hal ini, resourceType akan menghasilkan API sumber daya Azure baru untuk PUT, GET, dan DELETE untuk melakukan CRUD di satu sumber daya serta GET untuk mengambil semua sumber daya yang ada.

Catatan

Azure API akan menghasilkan metode permintaan PUT, GET, dan DELETE tetapi titik akhir cache hanya perlu menangani PUT dan DELETE. Kami merekomendasikan titik akhir untuk mengimplementasikan GET juga.

Buat sumber daya kustom

Permintaan masuk Azure API:

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

Permintaan ini kemudian akan diteruskan ke titik akhir dalam bentuk:

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

Respons dari titik akhir kemudian diteruskan kembali ke pelanggan. Responsnya harus menampilkan:

  • Dokumen objek JSON yang valid. Semua larik dan untai harus disarangkan di bawah objek atas.
  • Content-Type Header harus diatur ke "application/json; charset=utf-8".
  • Penyedia sumber daya kustom akan menimpa bidang name, type, dan id untuk permintaan tersebut.
  • Penyedia sumber daya kustom hanya akan mengembalikan bidang di bawah objek properties untuk titik akhir cache.

Respons titik akhir:

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

{
    "properties": {
        "myProperty1": "myPropertyValue1",
        "myProperty2": {
            "myProperty3" : "myPropertyValue3"
        }
    }
}

Bidang name, id, dan type bidang akan secara otomatis dibuat untuk sumber daya kustom oleh penyedia sumber daya kustom.

Respons Azure Custom Resource Provider:

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

Hapus sumber daya kustom

Permintaan masuk 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

Permintaan ini kemudian akan diteruskan ke titik akhir dalam bentuk:

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}

Respons dari titik akhir kemudian diteruskan kembali ke pelanggan. Responsnya harus menampilkan:

  • Dokumen objek JSON yang valid. Semua larik dan untai harus disarangkan di bawah objek atas.
  • Content-Type Header harus diatur ke "application/json; charset=utf-8".
  • Penyedia Sumber Daya Kustom Azure hanya akan menghapus item dari cache-nya jika respons tingkat 200 dikembalikan. Meskipun sumber daya tidak ada, titik akhir harus mengembalikan 204.

Respons titik akhir:

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

Respons Azure Custom Resource Provider:

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

Ambil sumber daya kustom

Permintaan masuk 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

Permintaan tidak akan diteruskan ke titik akhir.

Respons Azure Custom Resource Provider:

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

Hitung semua sumber daya kustom

Permintaan masuk 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

Permintaan tidak akan diteruskan ke titik akhir.

Respons Azure Custom Resource Provider:

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

Langkah berikutnya