Início rápido: criar um Provedor de Recursos Personalizado do Azure e implantar recursos personalizados
Neste guia de início rápido, você criará um provedor de recursos próprio e implantará recursos personalizados para o provedor de recursos. Para obter mais informações sobre os provedores de recursos personalizados, confira Visão geral dos provedores de recursos personalizados do Azure.
Pré-requisitos
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Para concluir as etapas deste início rápido, você precisará chamar operações
REST
. Há diferentes maneiras de enviar solicitações REST.
Prepare seu ambiente para a CLI do Azure.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Exemplos da CLI do Azure usam az rest
para solicitações de REST
. Para obter mais informações, confira az rest.
Implantar um provedor de recursos personalizado
Para configurar o provedor de recursos personalizado, implante um modelo de exemplo na sua assinatura do Azure.
O modelo implanta os seguintes recursos na sua assinatura:
- O aplicativo de funções com as operações para os recursos e as ações.
- A conta de armazenamento para armazenar os usuários criados por meio do provedor de recursos personalizado.
- O provedor de recursos personalizado, que define os tipos de recursos personalizados e as ações. Ele usa o ponto de extremidade do aplicativo de funções para enviar solicitações.
- O 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, uma localização e um nome de aplicativo de funções 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 implantam os recursos.
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 no portal do Azure, selecione o botão Implantar no Azure.
Exibir o provedor de recursos personalizado e o recurso
No portal, o provedor de recursos personalizado é um tipo de recurso oculto. Para confirmar se o provedor de recursos foi implantado, acesse o grupo de recursos e selecione Mostrar tipos ocultos.
Para ver o recurso personalizado que você implantou, use a operação GET
no tipo de recurso. O tipo de recurso Microsoft.CustomProviders/resourceProviders/users
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
O 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ções. A ação ping
responde com uma saudação.
Para enviar uma solicitação ping
, use a operação POST
na 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"
}
}
Usar PUT para criar um recurso
Neste guia de início rápido, o modelo usou o tipo de recurso Microsoft.CustomProviders/resourceProviders/users
para implantar um recurso. Você também pode usar uma operação PUT
para criar um recurso. Por exemplo, se um recurso não for implantado com o modelo, a operação PUT
criará um recurso.
Neste exemplo, como o modelo já implantou um recurso, a operação PUT
cria um 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 operação GET
na seção Exibir o provedor de recursos personalizado e o recurso para mostrar os dois recursos que foram criados. Este exemplo mostra a saída do comando da 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 do provedor de recursos personalizados
Use os comandos custom-providers para trabalhar com seu provedor de recursos personalizado.
Listar provedores de recursos personalizados
Use o comando list
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 parâmetro --subscription
. Para listar para um grupo de recursos, use o parâmetro --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
}
]
Mostrar as propriedades
Use o comando show
para exibir as propriedades do provedor de recursos personalizado. O formato de saída é semelhante à saída de list
.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Criar um novo recurso
Use o comando create
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 marcas do provedor
O comando update
atualiza apenas as marcas para um provedor de recursos personalizado. No portal do Azure, o serviço de aplicativo do provedor de recursos personalizado mostra a marca.
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Excluir um provedor de recursos personalizado
O comando delete
lhe faz uma solicitação e exclui somente o provedor de recursos personalizado. A conta de armazenamento, o serviço de aplicativo e o plano do serviço de aplicativo não são excluídos. Depois que o provedor for excluído, você será retornado para um prompt de comando.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Limpar os recursos
Quando terminar de usar os recursos criados neste artigo, exclua o grupo de recursos. Quando você exclui um grupo de recursos, todos os recursos do grupo são excluídos.
az group delete --resource-group $rgName
Próximas etapas
Para ver uma introdução aos provedores de recursos personalizados, confira o seguinte artigo: