Как получить список конвейеров в фабрике данных Azure для определенной ветки?

Мне нужно получить список конвейеров в Фабрике данных Azure (ADF), которые связаны с определенной веткой в ​​определенном репозитории в Azure DevOps.

Конвейеры Azure DevOps

Вот что я пробовал до сих пор:

Azure DevOps REST API: я использовал следующий вызов API в PowerShell для получения сведений из ветки в репозитории, поскольку сведения о конвейере хранятся внутри ADF/pipelines, но это не дает ожидаемого результата:

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/items?path = {path}&scopePath = {scopePath}&recursionLevel = {recursionLevel}&includeContentMetadata = {includeContentMetadata}&latestProcessedChange = {latestProcessedChange}&download = {download}&$format = {$format}&versionDescriptor.versionOptions = {versionDescriptor.versionOptions}&versionDescriptor.version = {versionDescriptor.version}&versionDescriptor.versionType = {versionDescriptor.versionType}&includeContent = {includeContent}&resolveLfs = {resolveLfs}&api-version=5.0

Я получил этот ответ по приведенному выше запросу, но я ожидал получить список конвейеров adf, запущенных из определенной ветки.

count : 1
value : {@{objectId=xxxxxx; gitObjectType=tree; 
        commitId=xxxxxx; path=/ADF/pipeline; isFolder=True; url=https://xxxx.xxxx.xxx
        /xxxx/xxxxxxxx/_apis/git/repositories/xxxxxx/it
        ems?path=%2FADF%2Fpipeline&versionType=Branch&version=Main&versionOptions=None}}

Модуль PowerShell: я использовал Get-AzDataFactoryV2Pipeline для вывода списка конвейеров в фабрике данных:

Get-AzDataFactoryV2Pipeline -ResourceGroupName <ResourceGroupName> -DataFactoryName <DataFactoryName>

Однако этот командлет возвращает конвейеры в реальном режиме в среде фабрики данных, а не конвейеры Devops.

🤔 А знаете ли вы, что...
PowerShell обеспечивает интеграцию с средствами облачного хранения данных, такими как Azure Storage.


99
1

Ответ:

Решено

Судя по снимку экрана с файлами json, на самом деле это конвейеры ADF. В репозитории DevOps git оно будет иметь имя в файле json, как показано ниже:

Если вы хотите получить ADF pipeline name от DevOps git для конкретной ветки, например: «Разработка», вы можете извлечь ветку и получить значение имени из json.

Пример Yaml ниже:

pool:
  vmImage: Windows-latest

steps:
- checkout: self
  persistCredentials: true                 # keep credential for git command latter.

- powershell: |
        git fetch --all
        git checkout Develop                  # for Develop branch
        # Get all JSON files in the "ADF/pipeline" folder
        if (Test-Path -Path "ADF/pipeline") {
          $jsonFiles = Get-ChildItem -Path "ADF/pipeline" -Filter *.json -Recurse
          foreach ($file in $jsonFiles) {
              $jsonContent = Get-Content -Path "ADF/pipeline/$file" -Raw | ConvertFrom-Json
              $pipelineName = $jsonContent.name
              Write-Output "Branch: Develop, PipelineName: $pipelineName"       # output branch name and pipeline name.
          }
         } else {
            Write-Output "Path 'ADF/pipeline' not found, skipping..."
        }

Он может получить имя конвейера:


Интересные вопросы для изучения

Можно ли получить значение из большого двоичного объекта (загруженного в контейнер CSV) и передать его в приложение логики?Развертывание функции Azure с помощью действий Github завершается неудачей без указания четкой причиныДоступ к параметрам приложения логики в коде сценария PowerShell в стандартных рабочих процессахAzure: команда nuget завершилась с ошибкой с кодом выхода (null) и error() — пакеты не удалось восстановитьКак запросить разрешения OAuth2 для субъектов службы в Entra ID с помощью Microsoft Graph Powershell?Доступ к параметрам приложения логики в коде сценария PowerShell в стандартных рабочих процессахИспользование API NDepend из сценария Windows PowerShell 5.1 приводит к ошибке регистра букв CLSПеремещение изображений в подпапках в зависимости от ориентацииКак запросить разрешения OAuth2 для субъектов службы в Entra ID с помощью Microsoft Graph Powershell?Невозможно обновить переменные в сценарии PowerShell файла yml Azure Devops