Desde finales de Mayo de 2021 la opción de establecer la anotación via plugin queda deprecada y debemos seguir anotando las releases ya que aportan mucha información en el mundo de operaciones: medir errores arreglados, introducidos otros nuevos, digamos que nos dice la calidad de nuestro depliegue.

Solo nos queda la opción de hacer este proces via Azure CLI, lo cual me encanta ya que es una herramienta que cualquier persona que trabaje con Azure debería conocer, debería manejarla medianamente bien y sobre todo saber donde esta la ayuda de Microsoft para poder ir haciendo todo lo que necesistes.

1. Para poder añadir anotaciones, debemos ir a el pipeline correspondiente:

2. Añadimos una tarea de Azure CLI:

3. Le decimos a la tarea que usamos un Scrip Type PowerShell y Script Location Inline

4. Añadimos el siguiente codigo en la parte Inline:

param(
    [parameter(Mandatory = $true)][string]$aiResourceId,
    [parameter(Mandatory = $true)][string]$releaseName,
    [parameter(Mandatory = $false)]$releaseProperties = @()
)

$annotation = @{
    Id = [GUID]::NewGuid();
    AnnotationName = $releaseName;
    EventTime = (Get-Date).ToUniversalTime().GetDateTimeFormats("s")[0];
    Category = "Deployment";
    Properties = ConvertTo-Json $releaseProperties -Compress
}

$body = (ConvertTo-Json $annotation -Compress) -replace '(\\+)"', '$1$1"' -replace "`"", "`"`""

az rest --method put --uri "$($aiResourceId)/Annotations?api-version=2015-05-01" --body "$($body) "

5. Y establecemos los argumentos, en la sección Script Argument

-aiResourceId "<aiResourceId>"
-releaseName "<releaseName>"
-releaseProperties @{"ReleaseDescription"="<a description>";"TriggerBy"="<Your name>" }

6. Guarda los cambios

A continuación tienes un listado de las variables de release y build que puedes poner en la opción de relaseproperties:

-releaseProperties @{ "BuildNumber"="$(Build.BuildNumber)";
  "BuildRepositoryName"="$(Build.Repository.Name)";
  "BuildRepositoryProvider"="$(Build.Repository.Provider)";
  "ReleaseDefinitionName"="$(Build.DefinitionName)";
  "ReleaseDescription"="Triggered by $(Build.DefinitionName) $(Build.BuildNumber)";
  "ReleaseEnvironmentName"="$(Release.EnvironmentName)";
  "ReleaseId"="$(Release.ReleaseId)";
  "ReleaseName"="$(Release.ReleaseName)";
  "ReleaseRequestedFor"="$(Release.RequestedFor)";
  "ReleaseWebUrl"="$(Release.ReleaseWebUrl)";
  "SourceBranch"="$(Build.SourceBranch)";
  "TeamFoundationCollectionUri"="$(System.TeamFoundationCollectionUri)" }

Una vez desplegado podemos ver la información de varias formas:

1. En la gráfica de Azure de Perfomance.

2. En la gráfica de Failures.

3. En la de Usage.

4. Con un Workbook via KQL.