Snabbstart: Skapa en anpassad Azure-resursprovider och distribuera anpassade resurser
I den här snabbstarten skapar du en anpassad resursprovider och distribuerar anpassade resurser för den resursprovidern. Mer information om anpassade resursprovidrar finns i Översikt över anpassade resursproviders i Azure.
Förutsättningar
- Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- För att slutföra stegen i den här snabbstarten måste du anropa
REST
åtgärder. Det finns olika sätt att skicka REST-begäranden.
Förbered din miljö för Azure CLI.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Azure CLI-exempel används az rest
för REST
begäranden. Mer information finns i az rest.
Distribuera anpassad resursprovider
Om du vill konfigurera den anpassade resursprovidern distribuerar du en exempelmall till din Azure-prenumeration.
Mallen distribuerar följande resurser till din prenumeration:
- Funktionsapp med åtgärder för resurser och åtgärder.
- Lagringskonto för lagring av användare som skapas via den anpassade resursprovidern.
- Anpassad resursprovider som definierar anpassade resurstyper och åtgärder. Den använder funktionsappens slutpunkt för att skicka begäranden.
- Anpassad resurs från den anpassade resursprovidern.
Om du vill distribuera den anpassade resursprovidern använder du Azure CLI, PowerShell eller Azure-portalen.
I det här exemplet uppmanas du att ange en resursgrupp, plats och providerns funktionsappnamn. Namnen lagras i variabler som används i andra kommandon. Kommandot az group create and az deployment group create distribuerar resurserna.
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
Om du vill distribuera mallen från Azure-portalen väljer du knappen Distribuera till Azure .
Visa anpassad resursprovider och resurs
I portalen är den anpassade resursprovidern en dold resurstyp. Bekräfta att resursprovidern har distribuerats genom att gå till resursgruppen och välja Visa dolda typer.
Om du vill se den anpassade resurs som du distribuerade använder du åtgärden för GET
din resurstyp. Resurstypen Microsoft.CustomProviders/resourceProviders/users
som visas i JSON-svaret innehåller den resurs som skapades av mallen.
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
Du får svaret:
{
"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"
}
]
}
Samtalsåtgärd
Din anpassade resursprovider har också en åtgärd med namnet ping
. Koden som bearbetar begäran implementeras i funktionsappen. Åtgärden ping
svarar med en hälsning.
Om du vill skicka en ping
begäran använder du åtgärden för POST
åtgärden.
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
Du får svaret:
{
"message": "hello <function-name>.azurewebsites.net",
"pingcontent": {
"source": "<function-name>.azurewebsites.net"
}
}
Använda PUT för att skapa en resurs
I den här snabbstarten använde mallen resurstypen Microsoft.CustomProviders/resourceProviders/users
för att distribuera en resurs. Du kan också använda en PUT
åtgärd för att skapa en resurs. Om en resurs till exempel inte distribueras med mallen skapar åtgärden PUT
en resurs.
I det här exemplet skapar åtgärden en ny resurs eftersom mallen redan har distribuerat en resurs PUT
.
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'}}"
Du får svaret:
{
"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"
}
Du kan köra GET
åtgärden igen från avsnittet Visa anpassad resursprovider och resurs för att visa de två resurser som skapades. Det här exemplet visar utdata från Azure CLI-kommandot.
{
"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"
}
]
}
Kommandon för anpassad resursprovider
Använd kommandona för anpassade providers för att arbeta med din anpassade resursprovider.
Lista anpassade resursprovidrar
list
Använd kommandot för att visa alla anpassade resursprovidrar i en prenumeration. Standardvärdet visar den aktuella prenumerationens anpassade resursprovidrar, eller så kan du ange parametern --subscription
. Om du vill visa en lista över en resursgrupp använder du parametern --resource-group
.
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
}
]
Visa egenskaperna
show
Använd kommandot för att visa egenskaperna för den anpassade resursprovidern. Utdataformatet liknar list
utdata.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Skapa en ny resurs
create
Använd kommandot för att skapa eller uppdatera en anpassad resursprovider. I det här exemplet uppdateras actions
och resourceTypes
.
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"
}
],
Uppdatera providerns taggar
Kommandot update
uppdaterar endast taggar för en anpassad resursprovider. I Azure-portalen visar den anpassade resursproviderns apptjänst taggen.
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Ta bort en anpassad resursprovider
Kommandot delete
frågar dig och tar bara bort den anpassade resursprovidern. Lagringskontot, apptjänsten och apptjänstplanen tas inte bort. När providern har tagits bort returneras du till en kommandotolk.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Rensa resurser
Om du är klar med resurserna som skapats i den här artikeln kan du ta bort resursgruppen. När du tar bort en resursgrupp tas alla resurser i resursgruppen bort.
az group delete --resource-group $rgName
Nästa steg
En introduktion till anpassade resursprovidrar finns i följande artikel: