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 proxy personalizados. 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 proxy
Um recurso proxy pode ser criado especificando o routingType como "Proxy".
Exemplo de fornecedor de recursos personalizados:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"routingType": "Proxy",
"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 ponto final que implementa um recurso de "Proxy" deve gerir o pedido e a resposta para a nova API no Azure. Neste caso, o #resourceType* irá gerar uma nova API de recursos Azure para PUT, GET, e DELETE para executar CRUD num único recurso, bem GET como para recuperar todos os recursos existentes.
Observação
Os idcampos , name, e type não são obrigatórios, mas são necessários para integrar o recurso personalizado com um ecossistema Azure existente.
Exemplo de recurso:
{
"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"
}
}
}
Referência do parâmetro:
| Propriedade | Exemplo | Description |
|---|---|---|
| nome | '{myCustomResourceName}' | O nome do recurso personalizado. |
| tipo | 'Microsoft.CustomProviders/resourceProviders/{resourceTypeName}' | O namespace do tipo de recurso. |
| id | '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ provedores/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{myCustomResourceName}' |
A ID do recurso. |
Crie um recurso personalizado
Azure API incoming request:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resource-provider-name}/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:
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".
Resposta ao ponto final:
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"
}
}
}
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:
- Documento válido de objeto JSON. 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".
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
Este pedido será então encaminhado para o endpoint na forma:
GET 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".
Resposta ao ponto final:
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"
}
}
}
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"
}
}
}
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
Este pedido será então encaminhado para o endpoint na forma:
GET 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
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". - A lista de recursos deve ser colocada sob a propriedade
valuede nível superior.
Resposta ao ponto final:
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"
}
}
}
]
}
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 Cache de Recursos Personalizada