Azure DevOps CLI のサービス エンドポイント
Azure DevOps Services
az devops service-endpoint
コマンドを使用すると、さまざまな種類のサービス接続を作成および管理できます。 サービス接続を使用すると、Azure DevOps は、Azure、Bitbucket、Kubernetes、Maven、GitHub などの外部サービスと通信できます。 az devops service-endpoint
では、次のタスクを実行できます。
- 構成ファイルを使用してサービス エンドポイントを作成する
- サービス エンドポイントを更新する
- GitHub サービス エンドポイント/接続を管理する
- Azure Resource Manager サービス エンドポイント/接続を管理する
- プロジェクトに対して定義されているサービス エンドポイントを一覧表示する
- サービス エンドポイントの詳細を取得します。
コマンドの構文の詳細については、 az devops service-endpoint
を参照してください。 サービス エンドポイントの REST API の構文については、「 Endpoints」を参照してください。
Azure cli コマンドを使用して、サービス エンドポイントの詳細の取得、一覧表示、削除、更新を行うこともできます。 Index to Azure DevOps 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": "c7e5f0b3-71fa-4429-9fb3-3321963a7c06",
"name": "TestProject"
},
"name": "MyNewServiceEndpoint"
}
]
}
次の表では、各パラメーターについて説明します。 type
パラメーターは、任意の種類のサービス エンドポイントの作成をサポートします。
パラメーター | 型 | 説明 |
---|---|---|
name |
string | エンドポイントのフレンドリ名を設定します。 |
type |
string | エンドポイントの種類を設定します。 |
url |
string | エンドポイントの URL を設定します。 |
authorization |
EndpointAuthorization | エンドポイントと通信するための承認データを設定します。 |
isShared |
boolean | サービス エンドポイントが他のプロジェクトと共有されているかどうかを示します。 |
isReady |
boolean | 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}]
[--org]
[--project]
パラメーター
- service-endpoint-configuration: 必須。 サービス エンドポイント構成を含む
json
構成ファイルの名前。 - encoding: 省略可能。 入力ファイルのエンコード。 既定値は
utf-8
です。 指定できる値:ascii
、utf-16be
、utf-16le
、utf-8
。 - org: Azure DevOps 組織の URL。
az devops configure -d organization=ORG_URL
を使用して、既定の組織を構成できます。 既定として構成されていない場合は必須。 - project: プロジェクトの名前または ID。
az devops configure -d 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
[--org]
[--project]
対話型モードでは、az devops service-endpoint github create
コマンドは、環境変数を使用して GitHub PAT トークンを設定するために、プロンプト メッセージを使用してAZURE_DEVOPS_EXT_GITHUB_PAT
GitHub PAT トークンを要求します。 詳細については、「 個人用アクセス トークン (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]
[--org]
[--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 アプリケーションで認証に certificate を使用する場合証明書の .pem ファイルを作成し、 --azure-rm-service-principal-certificate-path
引数を使用して .pem ファイルへのパスを渡します。
.pem ファイルは、openssl を使用して作成できます。
openssl pkcs12 -in file.pfx -out file.pem -nodes -secret pass:<secret_here>