Мне сложно проверить, существует группа или нет через Rest API.
Позвоните в Api, чтобы проверить, существует ли группа. Мои логики c: используйте Invoke-RestMethod для вызова API. Если вызов API успешен (группа существует), он сохранит результат в «$ reader_response_success», если группа не существует, командлет завершится ошибкой, сведения об ошибке сохранятся в переменной Error «$ reader_response_failure».
В зависимости от того, какая переменная имеет значения, я могу заключить, существует группа или нет. Тем не менее, наша структура имеет реализацию Try / Catch. Таким образом, в случае, если группа не существует, весь сценарий останавливается.
Как я могу убедиться, что скрипт продолжит выполнение, даже если вызов API завершится неудачно. (Поскольку я знаю, что вызов API не будет выполнен, если группа не существует). Я дал $ errorAction как 'SilentlyContinue', но он останавливает выполнение скрипта.
function Test-CoeAzureInstancePowerBI{
param
(
[Parameter (Mandatory = $true, ValueFromPipeline = $true)]
$ServiceConfiguration
)
## TODO: Check if the Reader and Creator Group exists in dwgm
# Checking if ReaderGroup exists
$Group = @{
GroupName = "ITGA_" + $ServiceConfiguration.ReaderGroup
}
$json = $Group | ConvertTo-Json
$reader_response_success = Invoke-RestMethod 'https://api.corpinter.net/dwgm/v1/lookup/' -Headers $ServiceConfiguration.Headers -Method POST -Body $json -ContentType 'application/json' -ErrorVariable $reader_response_failure -ErrorAction SilentlyContinue
# In the above api call,
# $reader_response_success contains data if the group exists
# $reader_response_failure contains data if the group does not exist
if($reader_response_success -eq $null) {$ServiceConfiguration.ReaderGroupExists = $False}
# Checking if ReaderGroup exists
$Group = @{
GroupName = "ITGA_" + $ServiceConfiguration.CreatorGroup
}
$json = $Group | ConvertTo-Json
$creator_response_success = Invoke-RestMethod 'https://api.corpinter.net/dwgm/v1/lookup/' -Headers $ServiceConfiguration.Headers -Method POST -Body $json -ContentType 'application/json' -ErrorVariable $creator_response_failure -ErrorAction SilentlyContinue
# In the above api call,
# $creator_response_success contains data if the group exists
# $creator_response_failure contains data if the group does not exist
if($creator_response_success -eq $null) {$ServiceConfiguration.CreatorGroupExists = $False}
## The instance should be SKIPPED only if both the ReaderGroup and CreatorGroup exist
if($ServiceConfiguration.CreatorGroupExists -eq $true -and $ServiceConfiguration.ReaderGroupExists -eq $true){
return $true
}else{
return $False
}
}