Поделиться через


Конечная точка службы CLI Azure DevOps

Azure DevOps Services

Подключение к службе позволяет Azure DevOps взаимодействовать с внешней службой, например Azure, Bitbucket, Kubernetes, Maven и GitHub. az devops service-endpoint С помощью команды можно создавать и управлять различными типами подключений к службе. Вы можете выполнить следующие задачи:

  • Создание конечной точки службы с помощью файла конфигурации
  • Обновление конечной точки службы
  • Управление конечными точками и подключениями службы GitHub
  • Управление конечными точками и подключениями службы Azure Resource Manager
  • Список конечных точек сервиса, определенных для проекта
  • Получение сведений о конечной точке службы

Подробный синтаксис команды см. в статье az devops service-endpoint. Синтаксис REST API для конечных точек службы см. в разделе "Конечные точки".

Команды Azure CLI можно использовать для получения сведений, списка, удаления и обновления конечной точки службы. См. сведения о конечных точках службы или подключениях к службам.

Сведения об использовании веб-портала для создания и изменения подключений служб см. в статье "Управление подключениями к службе".

Совет

В примерах в этой статье в качестве более безопасного метода аутентификации используются учетные записи служб вместо базовой проверки подлинности. Дополнительные сведения см. статью Использование служебных принципалов и управляемых удостоверений в Azure DevOps.

Создание конечной точки службы с помощью файла конфигурации

Чтобы создать конечную точку службы с помощью файла конфигурации, сначала определите файл конфигурации. Содержимое файла конфигурации отличается в зависимости от типа подключения, например Azure Classic, Azure Data Explorer, Bitbucket Cloud или Chef.

Формат файла конфигурации

В следующем синтаксисе показан формат JSON для файла конфигурации.

{
  "data": {},
  "name": "MyNewServiceEndpoint",
  "type": "AzureRM",
  "url": "https://management.azure.com/",
  "authorization": {
    "parameters": {
      "tenantid": "your-tenant-id"
    },
    "scheme": "ManagedServiceIdentity"
  },
  "isShared": false,
  "isReady": true,
  "serviceEndpointProjectReferences": [
    {
      "projectReference": {
        "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        "name": "TestProject"
      },
      "name": "MyNewServiceEndpoint"
    }
  ]
}

В следующей таблице содержатся описания всех параметров. Параметр type поддерживает создание любой конечной точки службы.

Параметр Тип Описание:
name строка Задает понятное имя конечной точки.
type строка Задает тип конечной точки.
url строка Задает URL-адрес конечной точки.
authorization Авторизация конечной точки Задает данные авторизации для разговора с конечной точкой.
isShared булевый Указывает, предоставляется ли конечная точка службы другим проектам.
isReady булевый Индикатор состояния EndPoint.
serviceEndpointProjectReferences Справочник по проекту Устанавливает проектную ссылку на узел службы.

Список поддерживаемых типов и необходимых входных параметров см. в следующей записи REST API:

https://dev.azure.com/{organization}/_apis/serviceendpoint/types?api-version=6.0-preview.1

Для описания типов подключения к службе и параметров см. Типы подключения к общей службе.

Выполните команду create.

Вы создаете конечную точку службы с помощью команды az devops service-endpoint create .

az devops service-endpoint create --service-endpoint-configuration 
                                  [--encoding {ascii, utf-16be, utf-16le, utf-8}]
                                  [--organization]
                                  [--project]

Параметры

  • service-endpoint-configuration: требуется. Имя файла конфигурации с конфигурацией конечной json точки службы.
  • кодировка: необязательно. Кодировка входного файла. По умолчанию — utf-8. Принятые значения: ascii, utf-16be, utf-16leutf-8.
  • организация: URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure --defaults organization=ORG_URL. Требуется, если значение по умолчанию не настроено.
  • проект: имя или идентификатор проекта. Вы можете настроить проект по умолчанию с помощью az devops configure --defaults project=NAME_OR_ID. Требуется, если значение по умолчанию не настроено.

Пример

Следующая команда создает подключение службы, ссылающееся на файлServiceConnectionGeneric.json .

az devops service-endpoint create --service-endpoint-configuration ./ServiceConnectionGeneric.json

После создания команда назначает Id конечной точке сервиса. В этом примере возвращается следующий результат.

{
  "administratorsGroup": null,
  "authorization": {
    "parameters": {
      "serviceprincipalid": "your-service-principal-id",
      "serviceprincipalkey": "your-service-principal-key",
      "tenantid": "your-tenant-id"
    },
    "scheme": "ServicePrincipal"
  },
  "createdBy": {
    "descriptor": "aad.OGYxZTFlODEtMGJiNC03N2ZkLThkYzUtYjE3MTNiNTQ2MjQ4",
    "directoryAlias": null,
    "displayName": "Jamal Hartnett",
    "id": "60c83423-4eb6-4c5e-8395-1e71cb4aef4c",
    "imageUrl": "https://dev.azure.com/fabrikam/_apis/GraphProfile/MemberAvatars/aad.OGYxZTFlODEtMGJiNC03N2ZkLThkYzUtYjE3MTNiNTQ2MjQ4",
    "inactive": null,
    "isAadIdentity": null,
    "isContainer": null,
    "isDeletedInOrigin": null,
    "profileUrl": null,
    "uniqueName": "fabrikamfiber4@hotmail.com",
    "url": "https://spsprodwcus0.vssps.visualstudio.com/A0214b8cc-a36c-4b93-abbf-6348473c2f0a/_apis/Identities/60c83423-4eb6-4c5e-8395-1e71cb4aef4c"
  },
  "data": {},
  "description": null,
  "groupScopeId": null,
  "id": "3b6890ef-54b3-47ec-a907-a5d2f96237da",
  "isReady": true,
  "isShared": false,
  "name": "MyNewServiceEndpoint",
  "operationStatus": null,
  "owner": "library",
  "readersGroup": null,
  "serviceEndpointProjectReferences": [
    {
      "name": "MyNewServiceEndpoint",
      "projectReference": {
        "id": "677da0fb-b067-4f77-b89b-f32c12bb8617",
        "name": null
      }
    }
  ],
  "type": "Generic",
  "url": "https://myserver"
}

Создание конечной точки службы GitHub

Чтобы создать конечную точку службы GitHub, используйте команду az devops service-endpoint github create :

az devops service-endpoint github create --github-url
                                         --name 
                                         [--organization]
                                         [--project]

В интерактивном режиме команда az devops service-endpoint github create предлагает ввести маркер GitHub PAT. В целях автоматизации задайте маркер GitHub PAT с помощью переменной AZURE_DEVOPS_EXT_GITHUB_PAT среды. Дополнительные сведения см. в разделе "Вход с помощью личного маркера доступа".

Создание конечной точки службы Azure Resource Manager

Чтобы создать конечную точку службы Azure Resource Manager, используйте команду az devops service-endpoint azurerm create .

az devops service-endpoint azurerm create --azure-rm-service-principal-id
                                          --azure-rm-subscription-id
                                          --azure-rm-subscription-name
                                          --azure-rm-tenant-id
                                          --name
                                          [--azure-rm-service-principal-certificate-path] 
                                          [--organization]
                                          [--project]

Использование секрета клиента

В интерактивном режиме команда az devops service-endpoint azurerm create запрашивает у вас секрет служебного принципала. Для автоматизации задайте секрет служебного принципала с помощью переменной окружения AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY.

export AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY=<your_secret_here>
$env:AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY=<your_secret_here>

Использование сертификата клиента

Если приложение Microsoft Entra использует сертификат для проверки подлинности, создайте PEM-файл для сертификата. Передайте путь к PEM-файлу с помощью аргумента --azure-rm-service-principal-certificate-path .

Pem-файл можно создать с помощью OpenSSL:

openssl pkcs12 -in file.pfx -out file.pem -nodes -secret pass:<secret_here>