Я работаю над интеграцией Azure Purview с другими системами, используя PowerShell. Моя цель — получить список всех терминов глоссария из Azure Purview программным способом с помощью REST API и PowerShell.
Вот что я пробовал до сих пор:
Аутентификация и получение токена. Я успешно прошел аутентификацию в Azure с помощью PowerShell и получил действительный токен носителя для Azure Purview, используя следующий сценарий:
# Define Azure Purview details
$resourceGroupName = "ResourceGroupName"
$purviewAccountName = "PurviewAccountName"
# Authenticate and get access token
Connect-AzAccount
$token = Get-AzAccessToken -ResourceUrl "https://purview.azure.net" |
Select-Object -ExpandProperty AccessToken
Попытка получить термины глоссария. Я попытался использовать следующий сценарий PowerShell для получения терминов глоссария, но столкнулся с проблемами:
# Define Azure Purview API endpoint for glossary terms
$glossaryId = "" #Where to get it?????
$endpoint = "https://$purviewAccountName.purview.azure.com/datamap/api/atlas/v2/glossary/$glossaryId/terms?api-version=2023-09-01&limit=-1&offset=0&sort=ASC"
# Set headers with the access token
$headers = @{
'Authorization' = "Bearer $token"
'Content-Type' = 'application/json'
}
# Make the GET request
try {
$response = Invoke-RestMethod -Uri $endpoint -Headers $headers -Method Get
$response
}
catch {
Write-Error "Failed to retrieve glossary terms. Error: $_"
}
Приведенный выше сценарий приводил к ошибкам типа «Не найден» и не получал ожидаемые термины глоссария. Я видел примеры использования других конечных точек или параметров, таких как ключевые слова, в документации API, но я не уверен в правильности подхода к терминам глоссария.
Может ли кто-нибудь предоставить рекомендации по правильному синтаксису и параметрам PowerShell для получения терминов глоссария из Azure Purview через REST API?
Будем очень признательны за любую помощь, примеры или идеи о том, как правильно структурировать запрос API.
В моей учетной записи Azure Purview есть глоссарий DemoGlossary
с двумя терминами, например:
Сначала запустите сценарий PowerShell, чтобы получить идентификатор приведенного выше глоссария:
# Define Azure Purview details
$resourceGroupName = "rgname"
$purviewAccountName = "purviewname"
$token = Get-AzAccessToken -ResourceUrl "https://purview.azure.net" | Select-Object -ExpandProperty Token
$endpoint = "https://$purviewAccountName.purview.azure.com/datamap/api/atlas/v2/glossary?api-version=2023-09-01&limit=1&offset=0&sort=AS"
# Set headers with the access token
$headers = @{
'Authorization' = "Bearer $token"
'Content-Type' = 'application/json'
}
# Make the GET request
try {
$response = Invoke-RestMethod -Uri $endpoint -Headers $headers -Method Get
$response
}
catch {
Write-Error "Failed to retrieve glossary terms. Error: $_"
}
Ответ:
Теперь вы можете использовать это значение GUID как $glossaryId
и запустить приведенный ниже скрипт, чтобы получить термины глоссария Azure Purview:
# Define Azure Purview details
$resourceGroupName = "rgname"
$purviewAccountName = "purviewname"
$token = Get-AzAccessToken -ResourceUrl "https://purview.azure.net" | Select-Object -ExpandProperty Token
# Define Azure Purview API endpoint for glossary terms
$glossaryId = "706d3acc-9xx9-4xxc-xxxx-xxxxxxxx" #Use GUID from above response
$endpoint = "https://$purviewAccountName.purview.azure.com/datamap/api/atlas/v2/glossary/$glossaryId/terms?api-version=2023-09-01&limit=-1&offset=0&sort=ASC"
$headers = @{
'Authorization' = "Bearer $token"
'Content-Type' = 'application/json'
}
try {
$response = Invoke-RestMethod -Uri $endpoint -Headers $headers -Method Get
$response
}
catch {
Write-Error "Failed to retrieve glossary terms. Error: $_"
}
Ответ: