次の方法で共有


Azure DevOps CLI のサービス エンドポイント

Azure DevOps Services

サービス接続により、Azure DevOps は、Azure、Bitbucket、Kubernetes、Maven、GitHub などの外部サービスと通信できます。 az devops service-endpoint コマンドを使用すると、さまざまな種類のサービス接続を作成および管理できます。 次のタスクを実行できます。

  • 構成ファイルを使用してサービス エンドポイントを作成する
  • サービス エンドポイントを更新する
  • GitHub サービス エンドポイントと接続を管理する
  • Azure Resource Manager サービス エンドポイントと接続を管理する
  • プロジェクトに対して定義されているサービス エンドポイントを一覧表示する
  • サービス エンドポイントの詳細を取得する

コマンド構文の詳細については、 az devops service-endpoint を参照してください。 サービス エンドポイントの REST API の構文については、「 Endpoints」を参照してください。

Azure CLI コマンドを使用して、サービス エンドポイントの詳細の取得、一覧表示、削除、更新を行うことができます。 「サービス エンドポイントまたはサービス接続」を参照してください。

Web ポータルを使用してサービス接続を作成および編集するには、「 Manage サービス接続を参照してください。

ヒント

この記事の例では、認証のより安全な方法として、基本認証の代わりにサービス プリンシパルを使用します。 詳細については、「Azure DevOpsでサービス プリンシパル & マネージド ID を使用する」を参照してください。

構成ファイルを使用してサービス エンドポイントを作成する

構成ファイルを使用してサービス エンドポイントを作成するには、まず構成ファイルを定義します。 構成ファイルの内容は、Azure クラシック、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 エンドポイント承認 (EndpointAuthorization) エンドポイントと通信するための承認データを設定します。
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 構成ファイルの名前。
  • encoding: 省略可能。 入力ファイルのエンコード。 既定値は utf-8 です。 指定できる値: asciiutf-16beutf-16leutf-8
  • organization: Azure DevOps 組織の URL。 az devops configure --defaults organization=ORG_URL を使用して、既定の組織を構成できます。 既定として構成されていない場合は必須。
  • project: プロジェクトの名前または ID。 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 トークンの入力が求められます。 自動化のために、 AZURE_DEVOPS_EXT_GITHUB_PAT 環境変数を使用して 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 ファイルを作成します。 --azure-rm-service-principal-certificate-path引数を使用して、.pem ファイルへのパスを渡します。

OpenSSL を使用して .pem ファイルを作成できます。

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