Rychlý start: Vytvoření vlastního poskytovatele prostředků Azure a nasazení vlastních prostředků

V tomto rychlém startu vytvoříte vlastního poskytovatele prostředků a nasadíte pro tohoto poskytovatele prostředků vlastní prostředky. Další informace o vlastních poskytovateli prostředků najdete v tématu Přehled vlastních poskytovatelů prostředků Azure.

Požadavky

Připravte prostředí pro Azure CLI.

Příklady Azure CLI se používají az rest pro REST požadavky. Další informace najdete v tématu az rest.

Nasazení vlastního poskytovatele prostředků

Pokud chcete nastavit vlastního poskytovatele prostředků, nasaďte ukázkovou šablonu do předplatného Azure.

Šablona nasadí do vašeho předplatného následující prostředky:

  • Aplikace funkcí s operacemi pro prostředky a akce
  • Účet úložiště pro ukládání uživatelů vytvořených prostřednictvím vlastního poskytovatele prostředků.
  • Vlastní poskytovatel prostředků, který definuje vlastní typy a akce prostředků. Používá koncový bod aplikace funkcí k odesílání požadavků.
  • Vlastní prostředek od vlastního poskytovatele prostředků

Pokud chcete nasadit vlastního poskytovatele prostředků, použijte Azure CLI, PowerShell nebo Azure Portal.

Tento příklad vás vyzve k zadání názvu aplikace funkcí skupiny prostředků, umístění a poskytovatele. Názvy se ukládají v proměnných, které se používají v jiných příkazech. Příkazy az group create a az deployment group create nasadí prostředky.

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

Pokud chcete šablonu nasadit z webu Azure Portal, vyberte tlačítko Nasadit do Azure .

Button to deploy the Resource Manager template to Azure.

Zobrazení vlastního poskytovatele prostředků a prostředku

Na portálu je vlastní poskytovatel prostředků skrytý typ prostředku. Pokud chcete ověřit, že je poskytovatel prostředků nasazený, přejděte do skupiny prostředků a vyberte Zobrazit skryté typy.

Screenshot of Azure portal displaying hidden resource types and resources deployed in a resource group.

Pokud chcete zobrazit vlastní prostředek, který jste nasadili, použijte GET operaci typu prostředku. Typ Microsoft.CustomProviders/resourceProviders/users prostředku zobrazený v odpovědi JSON obsahuje prostředek vytvořený šablonou.

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

Obdržíte odpověď:

{
  "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"
    }
  ]
}

Akce volání

Váš vlastní poskytovatel prostředků má také akci s názvem ping. Kód, který zpracovává požadavek, se implementuje v aplikaci funkcí. Akce ping odpoví pozdravem.

Pokud chcete odeslat ping požadavek, použijte POST operaci akce.

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

Obdržíte odpověď:

{
  "message": "hello <function-name>.azurewebsites.net",
  "pingcontent": {
    "source": "<function-name>.azurewebsites.net"
  }
}

Použití PUT k vytvoření prostředku

V tomto rychlém startu šablona použila typ Microsoft.CustomProviders/resourceProviders/users prostředku k nasazení prostředku. K vytvoření prostředku můžete použít PUT také operaci. Pokud například prostředek není nasazený se šablonou, PUT operace vytvoří prostředek.

V tomto příkladu, protože šablona už nasadila prostředek, PUT operace vytvoří nový prostředek.

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'}}"

Obdržíte odpověď:

{
  "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"
}

Operaci můžete znovu spustit GET z oddílu zobrazit vlastního poskytovatele prostředků a prostředku , abyste zobrazili dva vytvořené prostředky. Tento příklad ukazuje výstup z příkazu 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"
    }
  ]
}

Vlastní příkazy poskytovatele prostředků

Pomocí příkazů vlastních poskytovatelů můžete pracovat s vaším vlastním poskytovatelem prostředků.

Výpis vlastních poskytovatelů prostředků

list Pomocí příkazu zobrazíte všechny vlastní poskytovatele prostředků v předplatném. Výchozí seznam obsahuje vlastní poskytovatele prostředků aktuálního předplatného nebo můžete zadat --subscription parametr. Pokud chcete zobrazit seznam pro skupinu prostředků, použijte --resource-group parametr.

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
  }
]

Zobrazení vlastností

show Pomocí příkazu zobrazte vlastnosti vlastního poskytovatele prostředků. Formát výstupu se podobá výstupu list .

az custom-providers resource-provider show --resource-group $rgName --name $funcName

Vytvoření nového prostředku

create Pomocí příkazu vytvořte nebo aktualizujte vlastního poskytovatele prostředků. Tento příklad aktualizuje a actionsresourceTypes.

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"
  }
],

Aktualizace značek poskytovatele

Příkaz update aktualizuje pouze značky pro vlastního poskytovatele prostředků. Na webu Azure Portal zobrazuje služba App Service vlastního poskytovatele prostředků značku.

az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
  "new": "tag"
},

Odstranění vlastního poskytovatele prostředků

Příkaz delete vás vyzve a odstraní pouze vlastního poskytovatele prostředků. Účet úložiště, app service a plán služby App Service se neodstraní. Po odstranění poskytovatele se vrátíte do příkazového řádku.

az custom-providers resource-provider delete --resource-group $rgName --name $funcName

Vyčištění prostředků

Pokud jste s prostředky vytvořenými v tomto článku hotovi, můžete odstranit skupinu prostředků. Když odstraníte skupinu prostředků, odstraní se všechny prostředky v této skupině prostředků.

az group delete --resource-group $rgName

Další kroky

Úvod k vlastním poskytovatelům prostředků najdete v následujícím článku: