Как получить список конвейеров в фабрике данных 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.

my expectation was to retrieve the list of devops pipelines published in adf, как опубликовать конвейер DevOps в ADF? А что такое содержимое папки ADF/pipelines? Пожалуйста, уточните немного и покажите, что вы хотите получить.
wade zhou - MSFT 26.08.2024 07:46

ADF/pipelines содержит список конвейеров DevOps,

denim 26.08.2024 07:59

Yaml конвейера DevOps имеет формат .yaml или .yml, для подтверждения покажите содержимое папки screenshot из ADF/pipelines. Как опубликовать конвейер DevOps в ADF?

wade zhou - MSFT 26.08.2024 08:22

Я добавил картинку в тело. Это файл json, а не yml, как конвейеры DevOps.

denim 26.08.2024 14:15

Как вы, возможно, уже заметили, файл json в папке ADF/Pipeline НЕ является конвейером DevOps, а является конвейером ADF. В файле Json у него будет «имя» в формате json для отображения имени конвейера. Подробности добавлю ниже, спасибо.

wade zhou - MSFT 27.08.2024 10:53

@denim, ответ ниже помог тебе?

Vivek Vaibhav Shandilya 27.08.2024 15:47
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
6
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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..."
        }

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

Другие вопросы по теме

Доступ к параметрам приложения логики в коде сценария PowerShell в стандартных рабочих процессах
Использование API NDepend из сценария Windows PowerShell 5.1 приводит к ошибке регистра букв CLS
Перемещение изображений в подпапках в зависимости от ориентации
Как запросить разрешения OAuth2 для субъектов службы в Entra ID с помощью Microsoft Graph Powershell?
Невозможно обновить переменные в сценарии PowerShell файла yml Azure Devops
Отсутствует терминатор в PowerShell CLI в цикле for с использованием расширенных переменных
Как получить доступ к защищенной переменной в свойстве условия задачи Powershell в конвейере Azure
Powershell, как отображать только имена каталогов (кроме одного) и подкаталогов?
Переименуйте файлы последовательно, и если файл уже существует (конфликт имен), просто увеличьте итератор, чтобы дать файлу новое имя
Как преобразовать определенные символы в Unicode из BATCH/Powershell

Похожие вопросы

Можно ли получить значение из большого двоичного объекта (загруженного в контейнер CSV) и передать его в приложение логики?
Развертывание функции Azure с помощью действий Github завершается неудачей без указания четкой причины
Доступ к параметрам приложения логики в коде сценария PowerShell в стандартных рабочих процессах
Azure: команда nuget завершилась с ошибкой с кодом выхода (null) и error() — пакеты не удалось восстановить
Как запросить разрешения OAuth2 для субъектов службы в Entra ID с помощью Microsoft Graph Powershell?
(111: Соединение отклонено) при подключении к восходящему каналу — многоконтейнерное приложение NGINX/Docker
Как создать работающий GraphServiceClient и запросить у Graph имена групп
Как настроить EF Core в функции Azure, изолированной .NET8, с аутентификацией приложения Entra?
(InaccessibleImage) Изображение из экземпляра контейнера Azure
Конвейеры Terraform и Azure — авторизация конвейеров при подключении к службе