I had built a pipeline which scans the Keyvaults and sends a Microsoft Teams notification using Webhook(Eonos Office Webhook) incase any Key/Certificate has expired/about to Expire. And the pipeline works perfectly, however since O365 connectors are deing depreciated, I am forced to use Microsoft Workflows to post a message from a Webhook Request.
For that I created a Workflow which 'Post to a channel when a webhook request is received' but when I replaced my current Eonos WebhookURL with the new Workflow URL, I am getting the following error:
this is the current configuration of the Workflow:
And this is my powershell function which sends the notification using the WebhookURL:
What I understand is that it needs a SAS token for authentification(maybe I am wrong) but I am not able to find a solution where/if a token needs to be generated or what needs to be integrated to send the notification successfully.
Update 27.08.2024
Based on your description, I am able to invoke the sample Power AutoMate WebHook request in a pwsh
task of Azure DevOps pipeline.
pool: # server
vmImage: windows-latest
steps:
- pwsh: |
$WebhookURL = "https://prod-xx.southeastasia.logic.azure.com:443/workflows/xxxxxx/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2ftriggers%2fmanual%2frun&sv=1.0&sig=xxxxxx"
$messageParts = @(
"123"
"xyz"
)
$keyVault = "MyKeyVault"
$message = @{
'text' = ($messageParts -join "<br /><br />")
'title' = "Key Vault: $keyVault"
}
$messageJson = $message | ConvertTo-Json -Depth 2
Write-Host $messageJson
Invoke-RestMethod -Method Post -Uri $WebhookURL -Body $messageJson -ContentType 'application/json'
Please print those variables to double check if your pipeline had processed the expected values in $message
, $keyVault
and $messageJson
.
In case the error was caused by other script snippet, please share the relevant commands to investigate further.
Besides, since you should be able to execute that script anywhere with the command tool sets, you may try to run it in local PowerShell prompt before integrating it in pipelines. It is easier to troubleshoot.