Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo irá abordar os requisitos para endpoints que implementam recursos personalizados de cache. Se não estiver familiarizado com os Fornecedores de Recursos Personalizados do Azure, consulte a visão geral sobre fornecedores de recursos personalizados.
Defina um endpoint de recurso de cache
Um recurso proxy pode ser criado especificando o routingType para "Proxy, Cache".
Exemplo de fornecedor de recursos personalizados:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"routingType": "Proxy, Cache",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus",
"type": "Microsoft.CustomProviders/resourceProviders",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
"name": "{resourceProviderName}"
}
Construir um endpoint de recurso proxy
Um endpoint que implementa um recurso "Proxy, Cache" deve gerir o pedido e a resposta para a nova API no Azure. Neste caso, o resourceType gerará uma nova API de recursos Azure para PUT, GET, e DELETE para executar CRUD num único recurso, bem como GET para recuperar todos os recursos existentes.
Observação
A API do Azure gera os métodos PUT de pedido, GET e DELETE, mas o endpoint da cache só precisa de lidar com PUT e DELETE.
Recomendamos que o endpoint também implemente GET.
Crie um recurso personalizado
Azure API incoming request:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Este pedido será então encaminhado para o endpoint na forma de:
PUT https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
A resposta do endpoint é então encaminhada de volta para o cliente. A resposta deverá devolver:
- Um documento objeto JSON válido. Todos os arrays e strings devem estar aninhados sob um objeto principal.
- O
Content-Typecabeçalho deve ser definido como "application/json; charset=utf-8". - O fornecedor de recursos personalizados irá sobrescrever os
namecampos ,type, eidpara o pedido. - O fornecedor de recursos personalizados só devolverá campos debaixo do objeto
propertiespara um endpoint de cache.
Resposta do endpoint:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Os namecampos , id, e type serão automaticamente gerados para o recurso personalizado pelo fornecedor de recursos personalizados.
Resposta Azure Custom Resource Provider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Remover um recurso personalizado
Azure API incoming request:
Delete https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Este pedido será então encaminhado para o endpoint na forma:
Delete https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
A resposta do endpoint é então encaminhada de volta para o cliente. A resposta deverá devolver:
- Um documento objeto JSON válido. Todos os arrays e strings devem estar aninhados sob um objeto principal.
- O
Content-Typecabeçalho deve ser definido como "application/json; charset=utf-8". - O Azure Custom Resource Provider só removerá o item da sua cache se for devolvida uma resposta de nível 200. Mesmo que o recurso não exista, o endpoint deve devolver 204.
Resposta ao ponto final:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Resposta Azure Custom Resource Provider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Recuperar um recurso personalizado
Azure API incoming request:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
O pedido não será encaminhado para o endpoint.
Resposta do Azure Custom Resource Provider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Enumerar todos os recursos personalizados
Azure API incoming request:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
O pedido não será encaminhado para o endpoint.
Resposta Azure Custom Resource Provider:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"value" : [
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
]
}
Próximos passos
- Visão geral sobre Azure Custom Resource Providers
- Guia de início rápido: criar o Provedor de Recursos Personalizados do Azure e implantar recursos personalizados
- Tutorial: Criar ações e recursos personalizados no Azure
- Como: Adicionar ações personalizadas à API REST do Azure
- Referência: Referência de Proxy de Recursos Personalizados