Szybki start: tworzenie niestandardowego dostawcy zasobów platformy Azure i wdrażanie zasobów niestandardowych
W tym przewodniku Szybki start utworzysz niestandardowego dostawcę zasobów i wdrożysz zasoby niestandardowe dla tego dostawcy zasobów. Aby uzyskać więcej informacji na temat niestandardowych dostawców zasobów, zobacz Omówienie niestandardowych dostawców zasobów platformy Azure.
Wymagania wstępne
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Aby wykonać kroki opisane w tym przewodniku Szybki start, musisz wywołać
REST
operacje. Istnieją różne sposoby wysyłania żądań REST.
Przygotowanie środowiska do interfejsu wiersza polecenia platformy Azure.
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Przykłady interfejsu wiersza polecenia platformy Azure są używane az rest
dla REST
żądań. Aby uzyskać więcej informacji, zobacz az rest.
Wdrażanie niestandardowego dostawcy zasobów
Aby skonfigurować niestandardowego dostawcę zasobów, wdróż przykładowy szablon w subskrypcji platformy Azure.
Szablon wdraża następujące zasoby w ramach subskrypcji:
- Aplikacja funkcji z operacjami dla zasobów i akcji.
- Konto magazynu do przechowywania użytkowników utworzonych za pośrednictwem niestandardowego dostawcy zasobów.
- Niestandardowy dostawca zasobów, który definiuje niestandardowe typy zasobów i akcje. Używa on punktu końcowego aplikacji funkcji do wysyłania żądań.
- Zasób niestandardowy od niestandardowego dostawcy zasobów.
Aby wdrożyć niestandardowego dostawcę zasobów, użyj interfejsu wiersza polecenia platformy Azure, programu PowerShell lub witryny Azure Portal.
W tym przykładzie zostanie wyświetlony monit o wprowadzenie grupy zasobów, lokalizacji i nazwy aplikacji funkcji dostawcy. Nazwy są przechowywane w zmiennych, które są używane w innych poleceniach. Polecenia az group create i az deployment group create wdrażają zasoby.
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
Aby wdrożyć szablon w witrynie Azure Portal, wybierz przycisk Wdróż na platformie Azure .
Wyświetlanie niestandardowego dostawcy zasobów i zasobu
W portalu niestandardowy dostawca zasobów jest ukrytym typem zasobu. Aby potwierdzić, że dostawca zasobów został wdrożony, przejdź do grupy zasobów i wybierz pozycję Pokaż ukryte typy.
Aby wyświetlić wdrożony zasób niestandardowy, użyj GET
operacji typu zasobu. Typ Microsoft.CustomProviders/resourceProviders/users
zasobu pokazany w odpowiedzi JSON zawiera zasób utworzony przez szablon.
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
Otrzymasz odpowiedź:
{
"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"
}
]
}
Akcja wywołania
Niestandardowy dostawca zasobów ma również akcję o nazwie ping
. Kod, który przetwarza żądanie, jest implementowany w aplikacji funkcji. Akcja ping
odpowiada z powitaniem.
Aby wysłać ping
żądanie, użyj POST
operacji w ramach akcji.
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
Otrzymasz odpowiedź:
{
"message": "hello <function-name>.azurewebsites.net",
"pingcontent": {
"source": "<function-name>.azurewebsites.net"
}
}
Tworzenie zasobu przy użyciu funkcji PUT
W tym przewodniku Szybki start szablon użył typu Microsoft.CustomProviders/resourceProviders/users
zasobu do wdrożenia zasobu. Za pomocą PUT
operacji można również utworzyć zasób. Jeśli na przykład zasób nie zostanie wdrożony przy użyciu szablonu, PUT
operacja utworzy zasób.
W tym przykładzie, ponieważ szablon został już wdrożony zasób, PUT
operacja tworzy nowy zasób.
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'}}"
Otrzymasz odpowiedź:
{
"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"
}
Możesz ponownie uruchomić operację GET
w sekcji Wyświetl niestandardowego dostawcę zasobów i zasób , aby wyświetlić dwa utworzone zasoby. W tym przykładzie przedstawiono dane wyjściowe polecenia interfejsu wiersza polecenia platformy Azure.
{
"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"
}
]
}
Polecenia niestandardowego dostawcy zasobów
Użyj poleceń niestandardowych dostawców, aby pracować z niestandardowym dostawcą zasobów.
Wyświetlanie listy niestandardowych dostawców zasobów
Użyj polecenia , list
aby wyświetlić wszystkich niestandardowych dostawców zasobów w subskrypcji. Wartość domyślna zawiera listę niestandardowych dostawców zasobów bieżącej subskrypcji lub można określić --subscription
parametr . Aby wyświetlić listę dla grupy zasobów, użyj parametru --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
}
]
Pokaż właściwości
Użyj polecenia , show
aby wyświetlić właściwości niestandardowego dostawcy zasobów. Format danych wyjściowych przypomina list
dane wyjściowe.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Tworzenie nowego zasobu
Użyj polecenia , create
aby utworzyć lub zaktualizować niestandardowego dostawcę zasobów. W tym przykładzie zaktualizowano element actions
i 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"
}
],
Aktualizowanie tagów dostawcy
Polecenie update
aktualizuje tylko tagi dla niestandardowego dostawcy zasobów. W witrynie Azure Portal usługa aplikacji niestandardowego dostawcy zasobów wyświetla tag .
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Usuwanie niestandardowego dostawcy zasobów
Polecenie delete
wyświetla monit o usunięcie tylko niestandardowego dostawcy zasobów. Konto magazynu, usługa App Service i plan usługi App Service nie są usuwane. Po usunięciu dostawcy wrócisz do wiersza polecenia.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Czyszczenie zasobów
Jeśli skończysz z zasobami utworzonymi w tym artykule, możesz usunąć grupę zasobów. Po usunięciu grupy zasobów wszystkie zasoby w tej grupie zasobów zostaną usunięte.
az group delete --resource-group $rgName
Następne kroki
Aby zapoznać się z wprowadzeniem do niestandardowych dostawców zasobów, zobacz następujący artykuł: