Modules/BenchPress.Azure/Public/Invoke-AzCli.ps1 (41 lines of code) (raw):

function Invoke-AzCli { <# .DESCRIPTION Invoke an Azure CLI command. .SYNOPSIS Invoke-AzBPAzCli cmdlet invokes an Azure CLI command and returns the result as an object. .EXAMPLE PS C:\> Invoke-AzBPAzCli "account list" .EXAMPLE PS C:\> Invoke-AzBPAzCli "account list --query [].name" .EXAMPLE PS C:\> Invoke-AzBPAzCli "webapp create --name ${WEBAPP_NAME} --resource-group ${RESOURCE_GROUP_NAME} --plan ${APP_SERVICE_PLAN_NAME}" .PARAMETER Command The command to execute. .NOTES Invoke-AzBPAzCli adds the az prefix to the command. .LINK https://learn.microsoft.com/en-us/cli/azure/ .LINK https://learn.microsoft.com/en-us/cli/azure/get-started-with-azure-cli .LINK https://learn.microsoft.com/en-us/cli/azure/reference-index?view=azure-cli-latest .INPUTS System.String .OUTPUTS System.Object #> [CmdletBinding()] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingInvokeExpression", "")] param ( [Parameter(Mandatory=$true)] [string]$Command ) $toExecute = "az $Command" $result = Invoke-Expression "$toExecute" if ($LastExitCode -gt 0) { Write-Error "$result" } else { $result | ConvertFrom-Json } }