> ## Content Index
> Fetch the complete content index at: https://www.azurebrasil.cloud/llms.txt
> Use this file to discover other available public pages before exploring further.

# Azure Resource Graph - Lista de recursos criados nos últimos N dias
- URL: https://www.azurebrasil.cloud/blog/azure-resource-graph-lista-de-recursos-criados-nos-ultimos-n-dias/
- Published: 2023-07-27T13:59:16.000Z
- Updated: 2023-07-27T13:59:16.000Z
- Description: Quero começar o post de hoje com um desafio, a tarefa é a seguinte: recuperar a lista de recursos criados em uma Assinatura do Azure nos últimos 7 dias. Como você implementaria? Deixa nos comentários qual foi a primeira solução que veio na sua cabeça.
- Author: Rafael dos Santos

Quero começar o post de hoje com um desafio, a tarefa é a seguinte: recuperar a lista de recursos criados em uma Assinatura do Azure nos últimos 7 dias.

Como você implementaria?  
Deixa nos comentários qual foi a primeira solução que veio na sua cabeça.

### Azure Resource Graph

Se sua resposta envolve utilizar o Azure Resource Graph para buscar uma lista de recursos ordenada pela data de criação, lamento informar, mas, assim como eu, você vai perceber que a tarefa é um pouco mais complicada do que parece.

O problema reside em não existir uma padronização nas propriedades dos tipos de recurso no Azure, ao que parece cada equipe define as propriedades e apensar da documentação ser ótima com relação a isso é complicado, para não dizer impossível, de se conseguir uma lista apurada e mantê-la atualizada.

Executando uma query simples nos recursos da minha assinatura (e olha que nem tenho tantos tipos criados assim) consegui uma lista de \~12 propriedades diferentes.

```
resources
| where properties contains("time") or properties contains("date")
```

Alguns dos diferentes tipos de nome:

- createdTime
- createdDate
- creationTime
- timeCreated
- timestamp
- issueDate
- e outras

Após descobrir isso, ainda existem recursos que não possuem nenhum tipo óbvio de propriedade de criação.  
Agora vem a pergunta: como resolver o problema?

Temos duas possibilidades, a primeira seria cria uma Azure Policy que obrigaria todos os recursos a ter uma tag com o nome **dataCriacao** e o valor seria a data corrente, mas ainda teríamos o problema de não conseguir retornar os recursos já criados na query.

A solução é usar outra tabela no próprio Azure Resource Graph a tabela **resourcechanges**, responsável por manter uma lista de atualização nos últimos 14 dias de todas as mudanças do Azure.

[Get resource changes - Azure Resource GraphGet resource configuration changes at scale![](https://learn.microsoft.com/favicon.ico)Microsoft Learndavidsmatlak![](https://learn.microsoft.com/en-us/media/logos/logo-ms-social.png)](https://learn.microsoft.com/en-us/azure/governance/resource-graph/how-to/get-resource-changes?tabs=azure-portal&ref=azurebrasil.cloud)

Agora que temos as informações que precisamos, eu montei a query final do seguinte modo:

```
resourcechanges
| extend targetResourceId = tostring(properties.targetResourceId), changeType = tostring(properties.changeType), changeTime = todatetime(properties.changeAttributes.timestamp)
| where changeTime > ago(7d) and changeType == "Create"
| order by changeTime desc 
| project  resourceId=targetResourceId, resourceType=properties.targetResourceType, location, resourceGroup, changeTime
```

Prontinho, agora conseguimos capturar os recursos criados e podemos fazer as análises necessárias.

Me conta aí nos comentários qual foi a solução que você pensou  
\[\]s e até a próxima.