Özel kaynak sağlayıcısı oluşturma ve kullanma

Özel kaynak sağlayıcısı, Azure ile uç nokta arasındaki sözleşmedir. Özel kaynak sağlayıcılarıyla Azure'da iş akışlarını değiştirebilirsiniz. Bu öğreticide özel kaynak sağlayıcısı oluşturma işlemi gösterilmektedir. Azure Özel Kaynak Sağlayıcıları hakkında bilginiz yoksa Bkz. Azure Özel Kaynak Sağlayıcıları'na genel bakış.

Özel bir kaynak sağlayıcısı oluşturma

Not

Bu öğreticide uç nokta yazma işlemi gösterilmez. RESTFUL uç noktanız yoksa, geçerli öğreticinin temelini oluşturan RESTful uç noktaları yazma öğreticisini izleyin.

Uç nokta oluşturduktan sonra, sağlayıcı ile uç nokta arasında bir sözleşme oluşturmak için özel bir kaynak sağlayıcısı oluşturabilirsiniz. Özel bir kaynak sağlayıcısıyla uç nokta tanımlarının listesini belirtebilirsiniz:

{
  "name": "myEndpointDefinition",
  "routingType": "Proxy",
  "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
}
Özellik Gerekli Açıklama
Adı Yes Uç nokta tanımının adı. Azure bu adı API'siyle /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders altında kullanıma sunar
/resourceProviders/{resourceProviderName}/{endpointDefinitionName}
routingType No Uç nokta sözleşme türü. Değer belirtilmezse varsayılan olarak "Proxy" olur.
Bitiş noktası Yes İstekleri yönlendirecek uç nokta. Bu uç nokta yanıtı ve isteğin tüm yan etkilerini işler.

Uç nokta değeri, Azure işlev uygulamasının tetikleyici URL'sidir. <yourapp>, <funcname>ve <functionkey> yer tutucuları, oluşturduğunuz işlev uygulamasının değerleriyle değiştirilmelidir.

Özel eylemleri ve kaynakları tanımlama

Özel kaynak sağlayıcısı , eylemler ve resourceTypes özellikleri altında modellenen uç nokta tanımlarının listesini içerir. actions özelliği özel kaynak sağlayıcısı tarafından kullanıma sunulan özel eylemlerle eşler ve resourceTypes özelliği özel kaynaklardır. Bu öğreticide, özel kaynak sağlayıcısının adlı bir actions özelliği ve adlı myCustomActionmyCustomResourcesresourceTypes özelliği vardır.

{
  "properties": {
    "actions": [
      {
        "name": "myCustomAction",
        "routingType": "Proxy",
        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
      }
    ],
    "resourceTypes": [
      {
        "name": "myCustomResources",
        "routingType": "Proxy",
        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
      }
    ]
  },
  "location": "eastus"
}

Özel kaynak sağlayıcısını dağıtma

Not

Uç nokta değerlerini önceki öğreticide oluşturulan işlev uygulamasındaki tetikleyici URL'si ile değiştirmeniz gerekir.

Azure Resource Manager şablonu kullanarak önceki özel kaynak sağlayıcısını dağıtabilirsiniz:

{
    "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.CustomProviders/resourceProviders",
            "name": "myCustomProvider",
            "apiVersion": "2018-09-01-preview",
            "location": "eastus",
            "properties": {
                "actions": [
                    {
                        "name": "myCustomAction",
                        "routingType": "Proxy",
                        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
                    }
                ],
                "resourceTypes": [
                    {
                        "name": "myCustomResources",
                        "routingType": "Proxy",
                        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
                    }
                ]
            }
        }
    ]
}

Özel eylemleri ve kaynakları kullanma

Özel bir kaynak sağlayıcısı oluşturduktan sonra yeni Azure API'lerini kullanabilirsiniz. Aşağıdaki bölümlerde özel bir kaynak sağlayıcısının nasıl çağrılıp kullanılacağı açıklanmaktadır.

Özel eylemler

Azure CLI

Not

ve {resourceGroupName} yer tutucularını, özel kaynak sağlayıcısını dağıttığınız abonelik ve kaynak grubuyla değiştirmeniz {subscriptionId} gerekir.

az resource invoke-action --action myCustomAction \
                          --ids /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider \
                          --request-body
                            '{
                                "hello": "world"
                            }'
Parametre Gerekli Açıklama
Eylem Yes Özel kaynak sağlayıcısında tanımlanan eylemin adı.
Kimlik Yes Özel kaynak sağlayıcısının kaynak kimliği.
istek gövdesi No Uç noktaya gönderilecek istek gövdesi.

Özel kaynaklar

Not

ve {resourceGroupName} yer tutucularını, özel kaynak sağlayıcısını dağıttığınız abonelik ve kaynak grubuyla değiştirmeniz {subscriptionId} gerekir.

Özel kaynak oluşturma

az resource create --is-full-object \
                   --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1 \
                   --properties
                    '{
                        "location": "eastus",
                        "properties": {
                            "hello" : "world"
                        }
                    }'
Parametre Gerekli Açıklama
is-full-object Yes Properties nesnesinin konum, etiketler, SKU veya plan gibi diğer seçenekleri içerip içermediğini gösterir.
id Yes Özel kaynağın kaynak kimliği. Bu kimlik, özel kaynak sağlayıcısının kaynak kimliğinin bir uzantısıdır.
Özellikler Yes Uç noktaya gönderilecek istek gövdesi.

Özel kaynağı silme

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parametre Gerekli Açıklama
id Yes Özel kaynağın kaynak kimliği. Bu kimlik, özel kaynak sağlayıcısının kaynak kimliğinin bir uzantısıdır.

Özel kaynak alma

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parametre Gerekli Açıklama
id Yes Özel kaynağın kaynak kimliği. Bu kimlik, özel kaynak sağlayıcısının kaynak kimliğinin bir uzantısıdır.

Not

Özel kaynak sağlayıcısını dağıtmayı ve kullanmayı tamamladıktan sonra, Azure işlev uygulaması da dahil olmak üzere oluşturulan tüm kaynakları temizlemeyi unutmayın.

Sonraki adımlar

Bu makalede, özel kaynak sağlayıcıları hakkında bilgi edindiyseniz. Daha fazla bilgi için bkz.