Azure REST API'ye Özel Kaynaklar Ekleme

Bu makalede, özel kaynakları uygulayan Azure Özel Kaynak Sağlayıcısı uç noktaları oluşturmaya yönelik gereksinimler ve en iyi yöntemler 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.

Kaynak uç noktası tanımlama

Uç nokta, bir hizmeti işaret eden ve azure ile arasındaki temel sözleşmeyi uygulayan BIR URL'dir. Uç nokta özel kaynak sağlayıcısında tanımlanır ve genel olarak erişilebilen herhangi bir URL olabilir. Aşağıdaki örnekte tarafından endpointURLuygulanan adlı myCustomResource bir resourceType vardır.

Örnek ResourceProvider:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "myCustomResource",
        "routingType": "Proxy, Cache",
        "endpoint": "https://{endpointURL}/"
      }
    ]
  },
  "location": "eastus",
  "type": "Microsoft.CustomProviders/resourceProviders",
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
  "name": "{resourceProviderName}"
}

Kaynak uç noktası oluşturma

ResourceType uygulayan bir uç nokta, Azure'daki yeni API'nin isteğini ve yanıtını işlemelidir. ResourceType içeren özel bir kaynak sağlayıcısı oluşturulduğunda Azure'da yeni bir API kümesi oluşturur. Bu durumda resourceType, tek bir kaynakta CRUD gerçekleştirmek ve mevcut tüm kaynakları almak için , GETve DELETE için PUTyeni bir Azure kaynak GET API'si oluşturur:

Tek Kaynağı (PUT, GETve DELETE) işleme :

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource/{myCustomResourceName}

Tüm Kaynakları Al (GET):

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource

Özel kaynaklar için özel kaynak sağlayıcıları iki tür yönlendirme Türü sunar: "Proxy" ve "Proxy, Cache".

ara sunucu yönlendirme türü

"Proxy" routingType , tüm istek yöntemlerini özel kaynak sağlayıcısında belirtilen uç noktaya proxy'ler. "Proxy" ne zaman kullanılır:

  • Yanıt üzerinde tam denetim gereklidir.
  • Sistemleri mevcut kaynaklarla tümleştirme.

"Proxy" kaynaklar hakkında daha fazla bilgi edinmek için bkz. özel kaynak ara sunucusu başvurusu

ara sunucu önbelleği yönlendirme türü

Yalnızca "Proxy, Cache" routingType proxy'leri PUT ve DELETE özel kaynak sağlayıcısında belirtilen uç noktaya yöntem isteme. Özel kaynak sağlayıcısı, önbelleğinde depolandığı öğeye göre istekleri otomatik olarak döndürür GET . Özel bir kaynak önbellekle işaretlenmişse, özel kaynak sağlayıcısı API'leri Azure ile uyumlu hale getirmek için yanıta alan ekler/ alanların üzerine yazar. "Proxy, Cache" ne zaman kullanılır:

  • Mevcut kaynakları olmayan yeni bir sistem oluşturma.
  • Mevcut Azure ekosistemiyle çalışma.

"Proxy, Cache" kaynaklar hakkında daha fazla bilgi edinmek için bkz. özel kaynak önbelleği başvurusu

Özel kaynak oluşturma

Özel kaynak sağlayıcısından özel kaynak oluşturmanın iki ana yolu vardır:

  • Azure CLI
  • Azure Resource Manager Şablonları

Azure CLI

Özel kaynak oluşturma:

az resource create --is-full-object \
                   --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName} \
                   --properties \
                    '{
                        "location": "eastus",
                        "properties": {
                            "myProperty1": "myPropertyValue1",
                            "myProperty2": {
                                "myProperty3": "myPropertyValue3"
                            }
                        }
                    }'
Parametre Gerekli Açıklama
is-full-object Evet Properties nesnesinin konum, etiketler, sku ve/veya plan gibi diğer seçenekleri içerdiğini gösterir.
kimlik Evet Özel kaynağın kaynak kimliği. Bu, ResourceProvider'ın dışında bulunmalıdır
properties Evet Uç noktaya gönderilecek istek gövdesi.

Azure Özel Kaynağını silme:

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parametre Gerekli Açıklama
kimlik Evet Özel kaynağın kaynak kimliği. Bu , ResourceProvider'ın dışında bulunmalıdır.

Azure Özel Kaynağı alma:

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parametre Gerekli Açıklama
kimlik Evet Özel kaynağın kaynak kimliği. Bu, ResourceProvider'ın dışında bulunmalıdır

Azure Resource Manager Şablonu

Not

Kaynaklar, yanıtın uç noktadan uygun idbir , nameve type içermesini gerektirir.

Azure Resource Manager Şablonları, , nameve type öğesinin idaşağı akış uç noktasından doğru şekilde döndürülmelerini gerektirir. Döndürülen kaynak yanıtı şu biçimde olmalıdır:

Örnek uç nokta yanıtı:

{
  "properties": {
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3": "myPropertyValue3"
    }
  },
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{customResourceName}",
  "name": "{customResourceName}",
  "type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}"
}

Örnek Azure Resource Manager Şablonu:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}",
            "name": "{resourceProviderName}/{customResourceName}",
            "apiVersion": "2018-09-01-preview",
            "location": "eastus",
            "properties": {
                "myProperty1": "myPropertyValue1",
                "myProperty2": {
                    "myProperty3": "myPropertyValue3"
                }
            }
        }
    ]
}
Parametre Gerekli Açıklama
resourceTypeName Evet Özel kaynak sağlayıcısında tanımlanan resourceType'ın adı.
resourceProviderName Evet Özel kaynak sağlayıcısı örneği adı.
customResourceName Evet Özel kaynak adı.

Sonraki adımlar