Udostępnij przez


Szybki start: tworzenie niestandardowego dostawcy zasobów platformy Azure i wdrażanie zasobów niestandardowych

W tym przewodniku szybkiego startu utworzysz niestandardowego dostawcę zasobów i wdrożysz zasoby niestandardowe związane z tym dostawcą 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

Przygotuj swoje środowisko dla Azure CLI.

Przykłady interfejsu wiersza polecenia platformy Azure wykorzystują az rest do żądań REST. 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 funkcjonalna z operacjami na zasobach i akcjach.
  • Konto przechowywania użytkowników utworzonych za pomocą 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 dostarczony przez dostawcę zasobów niestandardowych.

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 .

Przycisk wdrażania szablonu usługi Resource Manager 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.

Zrzut ekranu witryny Azure Portal przedstawiający ukryte typy zasobów i zasoby wdrożone w grupie zasobów.

Aby wyświetlić wdrożony zasób niestandardowy, użyj operacji GET dla swojego 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"
    }
  ]
}

Wezwanie do działania

Twój niestandardowy dostawca zasobów ma również akcję o nazwie ping. Kod, który przetwarza żądanie, jest implementowany w aplikacji funkcji. Akcja ping odpowiada 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 szybkiego startu, szablon użył typu zasobu Microsoft.CustomProviders/resourceProviders/users 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 wdrożył już zasób, operacja PUT 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 pokazano dane wyjściowe z polecenia Azure CLI.

{
  "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ń custom-providers, aby pracować ze swoim niestandardowym dostawcą zasobów.

Lista niestandardowych dostawców zasobów

Użyj polecenia , list aby wyświetlić wszystkich niestandardowych dostawców zasobów w subskrypcji. Domyślne ustawienie wyświetla listę niestandardowych dostawców zasobów bieżącej subskrypcji, lub można określić parametr --subscription. 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 wyjściowy przypomina list.

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. Ten przykład aktualizuje 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 portalu Azure 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"
},

Usuń niestandardowego dostawcę zasobów

Polecenie delete wyświetla monit dla użytkownika i usuwa tylko niestandardowego dostawcę 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

Uprzątnij zasoby

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

Dalsze kroki

Aby zapoznać się z wprowadzeniem do niestandardowych dostawców zasobów, zobacz następujący artykuł: