Hızlı başlangıç: özel bir sağlayıcı oluşturma ve özel kaynaklar dağıtma

Bu hızlı başlangıçta, kendi kaynak sağlayıcınızı oluşturup bu kaynak sağlayıcısı için özel kaynak türleri dağıtırsınız. Özel sağlayıcılar hakkında daha fazla bilgi için bkz. Azure özel sağlayıcılar önizlemeye genel bakış.

Ön koşullar

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

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • 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. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantıları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 CLı örnekleri, az rest istekler için kullanır REST . Daha fazla bilgi için bkz. az Rest.

Özel sağlayıcı dağıt

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

Şablonu dağıttıktan sonra, aboneliğiniz aşağıdaki kaynaklara sahiptir:

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

Özel sağlayıcıyı dağıtmak için Azure CLI, PowerShell veya Azure portal:

Bu örnek bir kaynak grubu, konum ve sağlayıcının işlev uygulaması adını girmenizi sağlar. 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

Çözümü aynı zamanda uygulamanın Azure portal. Şablonu azure'da açmak için Azure'a dağıt düğmesini Azure portal.

Azure’a dağıtın

Özel sağlayıcıyı ve kaynağı görüntüleme

Portalda, özel sağlayıcı gizli bir kaynak t türündedir. Kaynak sağlayıcısının dağıtıldığından onaylamak için kaynak grubuna gidin. Gizli türleri göster seçeneğini belirleyin.

Gizli kaynak türlerini gösterme

Dağıtılan özel kaynak türünü görmek için işlemi GET kaynak türünüz üzerinde kullanın.

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/santa",
      "name": "santa",
      "properties": {
        "FullName": "Santa Claus",
        "Location": "NorthPole",
        "provisioningState": "Succeeded"
      },
      "resourceGroup": "<rg-name>",
      "type": "Microsoft.CustomProviders/resourceProviders/users"
    }
  ]
}

Eylem çağrısı

Özel sağlayıcınızın adlı bir eylemi de ping vardır. İsteği iş alan kod, işlev uygulamasında uygulanır. Eylem ping bir selamlama ile yanıtlar.

İstek göndermek ping için özel POST sağlayıcınızda bu işlemi kullanın.

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 türü oluşturma

Özel kaynak türünü oluşturmak için kaynağı bir şablonda dağıtabilirsiniz. Bu yaklaşım, bu hızlı başlangıçta dağıtılan şablonda gösterilir. Kaynak türü için PUT bir istek de gönderebilirsiniz.

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"
  },
  "resourceGroup": "<rg-name>",
  "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ılar komutlarını kullanın.

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

Bir list abonelikte tüm özel kaynak sağlayıcılarını görüntülemek için komutunu kullanın. Varsayılan değer geçerli aboneliğin özel kaynak sağlayıcılarını listeler veya parametresini --subscription belirtebilirsiniz. Bir kaynak grubunun listesini yapmak 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

Özel show 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

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

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

Komut update yalnızca özel bir kaynak sağlayıcısının etiketlerini güncelleştirmeye devam eder. Bu Azure portal, ö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 bilgi istiyor 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öndürülürsiniz.

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

Sonraki adımlar

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