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.
Ö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.
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ı ping
bir 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: