Quickstart: Aangepaste Azure-resourceprovider maken en aangepaste resources implementeren
In deze quickstart maakt u een aangepaste resourceprovider en implementeert u aangepaste resources voor die resourceprovider. Zie Het overzicht van aangepaste resourceproviders van Azure voor meer informatie over aangepaste resourceproviders.
Vereisten
- Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
- U moet
REST
-bewerkingen aanroepen om de stappen in deze quickstart uit te voeren. Er zijn verschillende manieren om REST-aanvragen te verzenden.
Bereid uw omgeving voor op Azure CLI.
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Azure CLI-voorbeelden gebruiken az rest
voor REST
-aanvragen. Ga voor meer informatie naar az rest.
Aangepaste resourceprovider implementeren
Als u de aangepaste resourceprovider wilt instellen, implementeert u een voorbeeldsjabloon in uw Azure-abonnement.
Met de sjabloon worden de volgende resources geïmplementeerd in uw abonnement:
- Functie-app met de bewerkingen voor de resources en acties.
- Opslagaccount voor het opslaan van gebruikers die zijn gemaakt via de aangepaste resourceprovider.
- Aangepaste resourceprovider waarmee de aangepaste resourcetypen en acties worden gedefinieerd. Er wordt gebruikgemaakt van het eindpunt voor de functie-app voor het verzenden van aanvragen.
- Aangepaste resource van de aangepaste resourceprovider.
Als u de aangepaste resourceprovider wilt implementeren, gebruikt u Azure CLI, PowerShell of Azure Portal.
In dit voorbeeld wordt u gevraagd om een resourcegroep, locatie en naam van de functie-app van de provider in te voeren. De namen worden opgeslagen in variabelen die worden gebruikt in andere opdrachten. Met de opdrachten az group create en az deployment group create implementeert u de resources.
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
Als u de sjabloon vanuit Azure Portal wilt implementeren, selecteert u de knop Implementeren in Azure .
Aangepaste resourceprovider en resource weergeven
In de portal is de aangepaste resourceprovider een verborgen resourcetype. Als u wilt controleren of de resourceprovider is geïmplementeerd, gaat u naar de resourcegroep en selecteert u Verborgen typen weergeven.
Als u de aangepaste resource wilt zien die u hebt geïmplementeerd, gebruikt u de GET
bewerking voor uw resourcetype. Het resourcetype Microsoft.CustomProviders/resourceProviders/users
dat wordt weergegeven in het JSON-antwoord bevat de resource die door de sjabloon is gemaakt.
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
U ontvangt het antwoord:
{
"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"
}
]
}
Aanroepactie
Uw aangepaste resourceprovider heeft ook een actie met de naam ping
. De code waarmee de aanvraag wordt verwerkt, is geïmplementeerd in de functie-app. De ping
-actie beantwoordt met een begroeting.
Als u een ping
aanvraag wilt verzenden, gebruikt u de POST
bewerking voor uw actie.
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
U ontvangt het antwoord:
{
"message": "hello <function-name>.azurewebsites.net",
"pingcontent": {
"source": "<function-name>.azurewebsites.net"
}
}
PUT gebruiken om een resource te maken
In deze quickstart heeft de sjabloon het resourcetype Microsoft.CustomProviders/resourceProviders/users
gebruikt om een resource te implementeren. U kunt ook een PUT
bewerking gebruiken om een resource te maken. Als een resource bijvoorbeeld niet met de sjabloon is geïmplementeerd, wordt er PUT
een resource gemaakt.
In dit voorbeeld, omdat de sjabloon al een resource heeft geïmplementeerd, maakt de PUT
bewerking een nieuwe resource.
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'}}"
U ontvangt het antwoord:
{
"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"
}
U kunt de GET
bewerking opnieuw uitvoeren vanuit de weergave aangepaste resourceprovider en resourcesectie om de twee resources weer te geven die zijn gemaakt. In dit voorbeeld ziet u uitvoer van de Azure CLI-opdracht.
{
"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"
}
]
}
Opdrachten voor de aangepaste resourceprovider
Gebruik de custom-providers-opdrachten om samen te werken met uw aangepaste resourceprovider.
Aangepaste resourceproviders weergeven
Gebruik de opdracht list
om alle aangepaste resourceproviders in een abonnement weer te geven. De standaardlijst geeft alle aangepaste resourceproviders voor het huidige abonnement weer, maar u kunt ook de parameter --subscription
opgeven. Gebruik de parameter --resource-group
om een resourcegroep weer te geven.
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
}
]
De eigenschappen weergeven
Gebruik de opdracht show
om de eigenschappen van de aangepaste resourceprovider weer te geven. De uitvoerindeling lijkt op de list
-uitvoer.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Een nieuwe resource maken
Gebruik de opdracht create
om een aangepaste resourceprovider te maken of bij te werken. In dit voorbeeld worden de actions
en resourceTypes
bijgewerkt.
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"
}
],
De labels van de provider bijwerken
Met de opdracht update
worden alleen labels voor een aangepaste resourceprovider bijgewerkt. In Azure Portal geeft de app-service van de aangepaste resourceprovider het label weer.
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Een aangepaste resourceprovider verwijderen
Met de opdracht delete
wordt u gevraagd om alleen de aangepaste resourceprovider te verwijderen. Het opslagaccount, de app-service en het app-serviceabonnement worden niet verwijderd. Nadat de provider is verwijderd, wordt u teruggeleid naar een opdrachtprompt.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Resources opschonen
Als u klaar bent met de resources die in dit artikel zijn gemaakt, kunt u de resourcegroep verwijderen. Wanneer u een resourcegroep verwijdert, worden alle resources in die resourcegroep verwijderd.
az group delete --resource-group $rgName
Volgende stappen
Zie het volgende artikel voor een inleiding tot aangepaste resourceproviders: