Obtenir la date de création d’une ressource Azure

La date de création d’une ressource Azure est une information qui peut être utile, mais qui n’est pas donnée directement par le portail.

On pourrait interroger les logs d’activité, mais l’information n’est gardée que 90 jours.

Il est possible de s’en sortir autrement. C’est ce que je vous propose dans cet article.

Introduction

La première idée que l’on peut tester est d’interroger Get-AzResource. Il y a des promesses puisque:

Get-azResource -Name storfdlm1 | Get-Member

Retourne:

2022-05-02_22-36-53

La propriété CreatedTime est intéressante. Comme l’atteindre?

(Get-AzResource -name storfdlm1).CreatedTime

Ne renvoie rien. Et de même pour:

(Get-AzResource -name storfdlm1 -ExpandProperties).CreatedTime

Je ne sais pas à quoi servent ces propriétés, mais ce n’est pas la bonne voie.

REST à la rescousse!

On va faire du REST, la première étape est donc de récupérer un jeton OAUTH. Ce n’est pas très difficile. Une solution possible:

$context = Get-AzContext
$profile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($profile)
$token = $profileClient.AcquireAccessToken($context.Subscription.TenantId)
$token = $token.AccessToken

On n’a plus qu’à interroger les api management:

$subscriptionId = "XXXXXXXXXXXXXXXXXXX"
$url = "https://management.azure.com"
$header = @{
    'Content-Type'  = 'application/json'
    'Authorization' = 'Bearer ' + $token
}

$uri = 'https://management.azure.com/subscriptions/' + $subscriptionId + '/resources?api-version=2022-01-01&$expand=createdTime&$filter=name eq ''storfdlm1'''

$response = Invoke-RestMethod -Method Get -Headers $header -Uri $uri
$response | convertto-json -Depth 10

Et j’obtiens les informations demandées pour ma ressource storefdlm1:

2022-05-02_23-29-40

On peut se demander pourquoi on passe par l’action liste plutôt que faire directement une requête GET BY ID. La raison est que ces derrières ne semblent pas accepter le paramètre $expand.

Bibliographie

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s