Relatar impactos usando um aplicativo lógico (visualização)
Importante
O Azure Impact Reporting está atualmente em Pré-visualização. Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.
Nota
Visite o API Docs para saber mais sobre as ações de gerenciamento de impacto disponíveis.
Use um aplicativo lógico como cliente REST para relatórios de impacto.
Pré-requisitos
É necessária uma identidade gerenciada com acesso PUT à API ImpactRP e acesso de leitura à fonte de dados para a carga de trabalho. Além disso, é necessária uma consulta com um intervalo de sondagem de 1 minuto ou superior para que a fonte de dados gere os seguintes campos:
- ImpactName
- ImpactStartTime
- ImpactedResourceId
- WorkloadContext
- ImpactCategory
Este guia usa um cluster Kusto como uma fonte de dados de exemplo com a seguinte consulta:
ExampleTable
| where Status =~ "BAD" and ingestion_time() > ago(1m)
| distinct ImpactStartTime=TimeStamp, ImpactedResourceId=ResourceId, WorkloadContext=Feature, ImpactCategory="Resource.Availability", ImpactName = hash_sha1(strcat(TimeStamp, ResourceId , Feature, Computer, ingestion_time()))
Nota
Substitua a consulta por uma para um armazenamento de dados ou fonte que é suportada por aplicativos lógicos e retorna as mesmas colunas. Se todas essas colunas não estiverem prontamente disponíveis, etapas adicionais deverão ser adicionadas ao fluxo de trabalho para gerar os campos ausentes.
Passos
Crie um novo Aplicativos Lógicos no portal do Azure com as seguintes configurações:
- Publicar: Fluxo de trabalho
- Região: Central US
- Plano: Standard
(Opcional) Na seção "Monitoramento", defina "Ativar Application Insights" como "Sim." para habilitar o monitoramento de falhas. Mais etapas estão na parte inferior deste documento.
Revise e crie o aplicativo lógico. Uma vez criado, abra o Logic App e navegue até "Configurações" -> "Identidade" no painel lateral. Na seção "Usuário atribuído", selecione "Adicionar" e selecione a identidade gerenciada criada nos pré-requisitos. Selecione "Salvar" para salvar as alterações.
Navegue até "Fluxos de trabalho" -> "Conexões" e selecione a guia "Visualização JSON". Crie uma conexão para sua fonte de dados. Este exemplo usa Kusto com identidade gerenciada, mas qualquer fonte de dados suportada por Aplicativos Lógicos pode ser usada:
{ "managedApiConnections": { "kusto": { "api": { "id": "/subscriptions/<subscription_id>/providers/Microsoft.Web/locations/<region>/managedApis/kusto" }, "authentication": { "type": "ManagedServiceIdentity" }, "connection": { "id": "/subscriptions/<subscription_id>/resourceGroups/<rg_name/providers/Microsoft.Web/connections/<connection_name>" }, "connectionProperties": { "authentication": { "audience": "https://kusto.kustomfa.windows.net", "identity": "/subscriptions/<subscription_id>/resourcegroups/<rg_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed_identity_name>", "type": "ManagedServiceIdentity" } }, "connectionRuntimeUrl": "<kusto_connection_runtime_url>" } } }
Selecione "Salvar" para salvar as alterações.
Navegue até "Fluxos de trabalho" -> "Fluxos de trabalho", selecione "Adicionar" e crie um novo fluxo de trabalho em branco com "Tipo de estado" definido como "Stateful".
Selecione o fluxo de trabalho recém-criado. Navegue até "Desenvolvedor" -> "Código" e substitua o conteúdo JSON por:
{ "definition": { "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", "actions": { "For_each": { "actions": { "HTTP": { "inputs": { "authentication": { "identity": "/subscriptions/<subscription_id>/resourcegroups/<rg_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed_identity_name>",, "type": "ManagedServiceIdentity" }, "body": { "properties": { "endDateTime": null, "impactCategory": "@{items('For_each')?['ImpactCategory']}", "impactedResourceId": "@{items('For_each')?['ImpactedResourceId']}", "startDateTime": "@{items('For_each')?['ImpactStartTime']}", "workload": { "context": "@{items('For_each')?['WorkloadContext']}" } } }, "method": "PUT", "retryPolicy": { "count": 5, "interval": "PT30M", "maximumInterval": "PT24H", "minimumInterval": "PT30M", "type": "exponential" }, "uri": "@{concat('https://management.azure.com/subscriptions/', split(item().ImpactedResourceId, '/')[2], '/providers/Microsoft.Impact/workloadImpacts/', item().ImpactName, '?api-version=2022-11-01-preview')}" }, "runAfter": {}, "type": "Http" } }, "foreach": "@body('Run_KQL_query')?['value']", "runAfter": { "Run_KQL_query": [ "Succeeded" ] }, "type": "Foreach" }, "Run_KQL_query": { "inputs": { "body": { "cluster": "https://examplecluster.eastus.kusto.windows.net/", "csl": "ExampleTable\n|where Status =~ \"BAD\" and ingestion_time()>ago(1m)\n|distinct ImpactStartTime=TimeStamp, ImpactedResourceId=ResourceId, WorkloadContext=Feature, ImpactCategory=\"Resource.Availability\", ImpactName = hash_sha1(strcat(TimeStamp, ResourceId , Feature, Computer, ingestion_time()))", "db": "exampledb" }, "host": { "connection": { "referenceName": "kusto" } }, "method": "post", "path": "/ListKustoResults/false" }, "runAfter": {}, "type": "ApiConnection" } }, "contentVersion": "1.0.0.0", "outputs": {}, "triggers": { "Recurrence": { "recurrence": { "frequency": "Minute", "interval": 1 }, "type": "Recurrence" } } }, "kind": "Stateful" }
Selecione "Salvar" para salvar as alterações.
Navegue até "Desenvolvedor" -> "Designer". Selecione o bloco "Executar consulta KQL (Kusto Query Language)". Substitua "URL do cluster" e "Banco de dados" pelo cluster e banco de dados Kusto de destino. Substitua a "Consulta" pela consulta dos pré-requisitos. Em seguida, selecione o link azul "Alterar conexão" abaixo da caixa de texto da consulta. Defina "Autenticação" como Identidade gerenciada e defina "Identidade gerenciada" para a identidade gerenciada criada nos pré-requisitos com um "Nome da conexão" apropriado e selecione "Criar".
Nota
Se estiver usando uma fonte diferente do Kusto, substitua o bloco "Executar consulta KQL" pelo bloco apropriado para sua fonte de dados. O bloco "Para cada um" precisará ser atualizado para iterar os resultados da consulta e o bloco "HTTP" precisará ser atualizado para usar os dados apropriados dos resultados da consulta.
(Opcional) Se o intervalo de sondagem para a consulta for superior a 1 minuto, selecione o bloco "Recorrência" e defina o "Intervalo" para o intervalo de sondagem em minutos.
Selecione o bloco "HTTP" e atualize a "Autenticação" para a identidade gerenciada criada nos pré-requisitos. Selecione "Salvar" para salvar as alterações.
Navegue até "Visão geral" e selecione "Executar" para testar o fluxo. Os resultados são exibidos em "Histórico de execução".
(Opcional) Retorne à tela do Aplicativo Lógico no portal do Azure. Navegue até "Configurações" -> "Application Insights" e selecione o hiperlink para o recurso do Application Insights. Navegue até "Monitoramento" -> "Alertas". Selecione "Criar" -> "Regra de alerta". A partir daqui, você pode criar uma regra de alerta para notificar sobre falhas.