Referência de cache de recurso personalizado
Este artigo irá analisar os requisitos para pontos finais que implementam recursos personalizados em cache. Se não estiver familiarizado com os Fornecedores de Recursos Personalizados do Azure, veja a descrição geral dos fornecedores de recursos personalizados.
Definir um ponto final de recurso de cache
Pode criar um recurso proxy ao especificar o routingType
para "Proxy, Cache".
Fornecedor de recursos personalizado de exemplo:
{
"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}"
}
Criar um ponto final de recurso de proxy
Um ponto final que implemente um ponto final de recurso "Proxy, Cache" tem de processar o pedido e a resposta para a nova API no Azure. Neste caso, o resourceType irá gerar uma nova API de recursos do Azure para PUT
, GET
e DELETE
para executar CRUD num único recurso, bem como GET
para obter todos os recursos existentes.
Nota
A API do Azure irá gerar os métodos PUT
de pedido , GET
e DELETE
, mas o ponto final da cache só precisa de processar PUT
e DELETE
.
Recomendamos que o ponto final também implemente GET
.
Criar um recurso personalizado
Pedido de entrada da API do Azure:
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"
}
}
}
Em seguida, este pedido será reencaminhado para o ponto final no formulário:
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"
}
}
}
Em seguida, a resposta do ponto final é reencaminhada para o cliente. A resposta deve devolver:
- Um documento de objeto JSON válido. Todas as matrizes e cadeias devem ser aninhadas num objeto superior.
- O
Content-Type
cabeçalho deve ser definido como "aplicação/json; charset=utf-8". - O fornecedor de recursos personalizado substituirá os
name
campos ,type
eid
para o pedido. - O fornecedor de recursos personalizado só devolverá campos no
properties
objeto para um ponto final de cache.
Resposta do ponto final:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Os name
campos , id
e type
serão gerados automaticamente para o recurso personalizado pelo fornecedor de recursos personalizado.
Resposta do Fornecedor de Recursos Personalizado do Azure:
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
Pedido de entrada da API do Azure:
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
Em seguida, este pedido será reencaminhado para o ponto final no formulário:
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}
Em seguida, a resposta do ponto final é reencaminhada para o cliente. A resposta deve devolver:
- Um documento de objeto JSON válido. Todas as matrizes e cadeias devem ser aninhadas num objeto superior.
- O
Content-Type
cabeçalho deve ser definido como "aplicação/json; charset=utf-8". - O Fornecedor de Recursos Personalizados do Azure só removerá o item da cache se for devolvida uma resposta de 200 níveis. Mesmo que o recurso não exista, o ponto final deve devolver 204.
Resposta do ponto final:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Resposta do Fornecedor de Recursos Personalizado do Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Obter um recurso personalizado
Pedido de entrada da API do Azure:
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á reencaminhado para o ponto final.
Resposta do Fornecedor de Recursos Personalizado do Azure:
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
Pedido de entrada da API do Azure:
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á reencaminhado para o ponto final.
Resposta do Fornecedor de Recursos Personalizado do Azure:
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"
}
}
}
]
}
Passos seguintes
- Descrição geral dos Fornecedores de Recursos Personalizados do Azure
- Início Rápido: Criar o Fornecedor de Recursos Personalizados do Azure e implementar recursos personalizados
- Tutorial: Criar ações e recursos personalizados no Azure
- Procedimentos: Adicionar Ações Personalizadas à API REST do Azure
- Referência: Referência personalizada do Proxy de Recursos