Hızlı Başlangıç: Azure Özel Kaynak Sağlayıcısı oluşturma ve özel kaynakları dağıtma

Bu hızlı başlangıçta, özel bir kaynak sağlayıcısı oluşturacak ve bu kaynak sağlayıcısı için özel kaynaklar dağıtacaksınız. Özel kaynak sağlayıcıları hakkında daha fazla bilgi için bkz . Azure Özel Kaynak Sağlayıcılarına Genel Bakış.

Önkoşullar

  • Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
  • Bu hızlı başlangıçtaki adımları tamamlamak için işlemleri çağırmanız REST gerekir. REST istekleri göndermenin farklı yolları vardır.

Ortamınızı Azure CLI için hazırlayın.

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Azure CLI örnekleri, istekler için REST kullanılıraz rest. Daha fazla bilgi için bkz . az rest.

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

Özel kaynak sağlayıcısını ayarlamak için Azure aboneliğinize örnek bir şablon dağıtın.

Şablon, aboneliğinize aşağıdaki kaynakları dağıtır:

  • Kaynaklar ve eylemler için işlemleri içeren işlev uygulaması.
  • özel kaynak sağlayıcısı aracılığıyla oluşturulan kullanıcıları depolamak için Depolama hesabı.
  • Özel kaynak türlerini ve eylemlerini tanımlayan özel kaynak sağlayıcısı. İstek göndermek için işlev uygulaması uç noktasını kullanır.
  • Özel kaynak sağlayıcısından özel kaynak.

Özel kaynak sağlayıcısını dağıtmak için Azure CLI, PowerShell veya Azure portalını kullanın.

Bu örnek bir kaynak grubu, konum ve sağlayıcının işlev uygulaması adını girmenizi ister. Adlar, diğer komutlarda kullanılan değişkenlerde depolanır. az group create ve az deployment group create komutları kaynakları dağıtır.

read -p "Enter a resource group name:" rgName &&
read -p "Enter the location (i.e. eastus):" location &&
read -p "Enter the provider's function app name:" funcName &&
templateUri="https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/custom-providers/customprovider.json" &&
az group create --name $rgName --location "$location" &&
az deployment group create --resource-group $rgName --template-uri $templateUri --parameters funcName=$funcName &&
echo "Press [ENTER] to continue ..." &&
read

Şablonu Azure portalından dağıtmak için Azure'a Dağıt düğmesini seçin.

Button to deploy the Resource Manager template to Azure.

Özel kaynak sağlayıcısını ve kaynağı görüntüleme

Portalda özel kaynak sağlayıcısı gizli bir kaynak türüdür. Kaynak sağlayıcısının dağıtıldığını onaylamak için kaynak grubuna gidin ve Gizli türleri göster'i seçin.

Screenshot of Azure portal displaying hidden resource types and resources deployed in a resource group.

Dağıttığınız özel kaynağı görmek için kaynak türünüzdeki GET işlemi kullanın. JSON yanıtında gösterilen kaynak türü Microsoft.CustomProviders/resourceProviders/users , şablon tarafından oluşturulan kaynağı içerir.

GET https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users?api-version=2018-09-01-preview
subID=$(az account show --query id --output tsv)
requestURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users?api-version=2018-09-01-preview"
az rest --method get --uri $requestURI

Yanıtı alırsınız:

{
  "value": [
    {
      "id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
      "name": "ana",
      "properties": {
        "FullName": "Ana Bowman",
        "Location": "Moon",
        "provisioningState": "Succeeded"
      },
      "type": "Microsoft.CustomProviders/resourceProviders/users"
    }
  ]
}

Arama eylemi

Özel kaynak sağlayıcınızda da adlı pingbir eylem vardır. İsteği işleyen kod işlev uygulamasında uygulanır. Eylem ping bir selamlamayla yanıt verir.

İstek göndermek ping için eyleminizdeki işlemi kullanın POST .

POST https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/ping?api-version=2018-09-01-preview
pingURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/ping?api-version=2018-09-01-preview"
az rest --method post --uri $pingURI

Yanıtı alırsınız:

{
  "message": "hello <function-name>.azurewebsites.net",
  "pingcontent": {
    "source": "<function-name>.azurewebsites.net"
  }
}

Kaynak oluşturmak için PUT kullanma

Bu hızlı başlangıçta şablon, kaynağı dağıtmak için kaynak türünü Microsoft.CustomProviders/resourceProviders/users kullanmıştı. Kaynak oluşturmak için bir PUT işlem de kullanabilirsiniz. Örneğin, bir kaynak şablonla dağıtılmazsa işlem PUT bir kaynak oluşturur.

Bu örnekte şablon zaten bir kaynağı PUT dağıttığı için işlem yeni bir kaynak oluşturur.

PUT https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/<resource-name>?api-version=2018-09-01-preview

{"properties":{"FullName": "Test User", "Location": "Earth"}}
addURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users/testuser?api-version=2018-09-01-preview"
az rest --method put --uri $addURI --body "{'properties':{'FullName': 'Test User', 'Location': 'Earth'}}"

Yanıtı alırsınız:

{
  "id": "/subscriptions/<sub-ID>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
  "name": "testuser",
  "properties": {
    "FullName": "Test User",
    "Location": "Earth",
    "provisioningState": "Succeeded"
  },
  "type": "Microsoft.CustomProviders/resourceProviders/users"
}

Oluşturulan iki kaynağı göstermek için işlemi özel kaynak sağlayıcısını ve kaynak bölümünü görüntüleme bölümünden yeniden çalıştırabilirsiniz.GET Bu örnekte Azure CLI komutunun çıkışı gösterilmektedir.

{
  "value": [
    {
      "id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
      "name": "ana",
      "properties": {
        "FullName": "Ana Bowman",
        "Location": "Moon",
        "provisioningState": "Succeeded"
      },
      "type": "Microsoft.CustomProviders/resourceProviders/users"
    },
    {
      "id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
      "name": "testuser",
      "properties": {
        "FullName": "Test User",
        "Location": "Earth",
        "provisioningState": "Succeeded"
      },
      "type": "Microsoft.CustomProviders/resourceProviders/users"
    }
  ]
}

Özel kaynak sağlayıcısı komutları

Özel kaynak sağlayıcınızla çalışmak için özel sağlayıcı komutlarını kullanın.

Özel kaynak sağlayıcılarını listeleme

Bir abonelikteki list tüm özel kaynak sağlayıcılarını görüntülemek için komutunu kullanın. Varsayılan olarak geçerli aboneliğin özel kaynak sağlayıcıları listelenir veya parametresini --subscription belirtebilirsiniz. Kaynak grubunun listesini oluşturmak için parametresini --resource-group kullanın.

az custom-providers resource-provider list --subscription $subID
[
  {
    "actions": [
      {
        "endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
        "name": "ping",
        "routingType": "Proxy"
      }
    ],
    "id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceproviders/<provider-name>",
    "location": "eastus",
    "name": "<provider-name>",
    "provisioningState": "Succeeded",
    "resourceGroup": "<rg-name>",
    "resourceTypes": [
      {
        "endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
        "name": "users",
        "routingType": "Proxy, Cache"
      }
    ],
    "tags": {},
    "type": "Microsoft.CustomProviders/resourceproviders",
    "validations": null
  }
]

Özellikleri gösterme

show Özel kaynak sağlayıcısının özelliklerini görüntülemek için komutunu kullanın. Çıkış biçimi çıkışa list benzer.

az custom-providers resource-provider show --resource-group $rgName --name $funcName

Yeni kaynak oluşturma

create Özel kaynak sağlayıcısı oluşturmak veya güncelleştirmek için komutunu kullanın. Bu örnek ve resourceTypes'yi actions güncelleştirir.

az custom-providers resource-provider create --resource-group $rgName --name $funcName \
--action name=ping endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type=Proxy \
--resource-type name=users endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type="Proxy, Cache"
"actions": [
  {
    "endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
    "name": "ping",
    "routingType": "Proxy"
  }
],

"resourceTypes": [
  {
    "endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
    "name": "users",
    "routingType": "Proxy, Cache"
  }
],

Sağlayıcının etiketlerini güncelleştirme

update Komutu yalnızca özel bir kaynak sağlayıcısının etiketlerini güncelleştirir. Azure portalında özel kaynak sağlayıcısının uygulama hizmeti etiketi gösterir.

az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
  "new": "tag"
},

Özel kaynak sağlayıcısını silme

Komut delete sizden ister ve yalnızca özel kaynak sağlayıcısını siler. Depolama hesabı, app service ve app service planı silinmez. Sağlayıcı silindikten sonra bir komut istemine geri dönersiniz.

az custom-providers resource-provider delete --resource-group $rgName --name $funcName

Kaynakları temizleme

Bu makalede oluşturulan kaynaklarla işiniz bittiyse kaynak grubunu silebilirsiniz. Bir kaynak grubunu sildiğinizde, bu kaynak grubundaki tüm kaynaklar silinir.

az group delete --resource-group $rgName

Sonraki adımlar

Özel kaynak sağlayıcılarına giriş için aşağıdaki makaleye bakın: