Guia de início rápido: criar o Provedor de Recursos Personalizados do Azure e implantar recursos personalizados
Neste início rápido, você cria um provedor de recursos personalizado e implanta recursos personalizados para esse provedor de recursos. Para obter mais informações sobre provedores de recursos personalizados, consulte Visão geral dos provedores de recursos personalizados do Azure.
Pré-requisitos
- Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
- Para concluir as etapas neste início rápido, você precisa chamar
REST
operações. Existem diferentes formas de enviar pedidos REST.
Prepare seu ambiente para a CLI do Azure.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
Exemplos de CLI do Azure são usados az rest
para REST
solicitações. Para obter mais informações, consulte az rest.
Implantar provedor de recursos personalizado
Para configurar o provedor de recursos personalizado, implante um modelo de exemplo em sua assinatura do Azure.
O modelo implanta os seguintes recursos na sua assinatura:
- Aplicativo de função com as operações para os recursos e ações.
- Conta de armazenamento para armazenar usuários criados por meio do provedor de recursos personalizado.
- Provedor de recursos personalizado que define os tipos e ações de recursos personalizados. Ele usa o ponto de extremidade do aplicativo de função para enviar solicitações.
- Recurso personalizado do provedor de recursos personalizado.
Para implantar o provedor de recursos personalizado, use a CLI do Azure, o PowerShell ou o portal do Azure.
Este exemplo solicita que você insira um grupo de recursos, um local e o nome do aplicativo de função do provedor. Os nomes são armazenados em variáveis que são usadas em outros comandos. Os comandos az group create e az deployment group create deploy the 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
Para implantar o modelo a partir do portal do Azure, selecione o botão Implantar no Azure .
Exibir provedor de recursos e recursos personalizados
No portal, o provedor de recursos personalizado é um tipo de recurso oculto. Para confirmar que o provedor de recursos foi implantado, vá para o grupo de recursos e selecione Mostrar tipos ocultos.
Para ver o recurso personalizado que você implantou, use a GET
operação em seu tipo de recurso. O tipo Microsoft.CustomProviders/resourceProviders/users
de recurso mostrado na resposta JSON inclui o recurso que foi criado pelo modelo.
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
Você recebe a resposta:
{
"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"
}
]
}
Ação de chamada
Seu provedor de recursos personalizado também tem uma ação chamada ping
. O código que processa a solicitação é implementado no aplicativo de função. A ping
ação responde com uma saudação.
Para enviar uma ping
solicitação, use a POST
operação em sua ação.
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
Você recebe a resposta:
{
"message": "hello <function-name>.azurewebsites.net",
"pingcontent": {
"source": "<function-name>.azurewebsites.net"
}
}
Use PUT para criar recursos
Neste início rápido, o modelo usou o tipo Microsoft.CustomProviders/resourceProviders/users
de recurso para implantar um recurso. Você também pode usar uma PUT
operação para criar um recurso. Por exemplo, se um recurso não for implantado com o modelo, a PUT
operação criará um recurso.
Neste exemplo, como o modelo já implantou um recurso, a PUT
operação cria um novo recurso.
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'}}"
Você recebe a resposta:
{
"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"
}
Você pode executar novamente a GET
operação na seção exibir provedor de recursos personalizado e recurso para mostrar os dois recursos que foram criados. Este exemplo mostra a saída do comando CLI do 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"
}
]
}
Comandos personalizados do provedor de recursos
Use os comandos custom-providers para trabalhar com seu provedor de recursos personalizado.
Listar provedores de recursos personalizados
Use o list
comando para exibir todos os provedores de recursos personalizados em uma assinatura. O padrão lista os provedores de recursos personalizados da assinatura atual ou você pode especificar o --subscription
parâmetro. Para listar um grupo de recursos, use o --resource-group
parâmetro.
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
}
]
Mostrar as propriedades
Use o show
comando para exibir as propriedades do provedor de recursos personalizado. O formato de saída é semelhante à list
saída.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Criar um novo recurso
Use o create
comando para criar ou atualizar um provedor de recursos personalizado. Este exemplo atualiza o actions
e 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"
}
],
Atualizar as tags do provedor
O update
comando apenas atualiza tags para um provedor de recursos personalizado. No portal do Azure, o serviço de aplicativo do provedor de recursos personalizado mostra a tag.
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Excluir um provedor de recursos personalizado
O delete
comando solicita e exclui apenas o provedor de recursos personalizado. A conta de armazenamento, o serviço de aplicativo e o plano de serviço de aplicativo não são excluídos. Depois que o provedor for excluído, você retornará a um prompt de comando.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Clean up resources (Limpar recursos)
Se tiver terminado com os recursos criados neste artigo, pode eliminar o grupo de recursos. Quando você exclui um grupo de recursos, todos os recursos desse grupo de recursos são excluídos.
az group delete --resource-group $rgName
Próximos passos
Para obter uma introdução aos provedores de recursos personalizados, consulte o seguinte artigo: