다음을 통해 공유


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의 구문은 엔드포인트를 참조 하세요.

Azure CLI 명령을 사용하여 세부 정보를 가져와서 서비스 엔드포인트를 나열, 삭제 및 업데이트할 수 있습니다. 서비스 엔드포인트 또는 서비스 연결을 참조하세요.

웹 포털을 사용하여 서비스 연결을 만들고 편집하려면 서비스 연결 관리를 참조 하세요.

이 문서의 예제에서는 인증을 위한 보다 안전한 방법으로 기본 인증 대신 서비스 주체를 사용합니다. 자세한 내용을 보려면 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 엔드포인트 권한 부여 엔드포인트와 통신하기 위한 권한 부여 데이터를 설정합니다.
isShared 불리언 서비스 엔드포인트가 다른 프로젝트와 공유되는지 여부를 나타냅니다.
isReady 불리언 엔드포인트 상태 표시기입니다.
serviceEndpointProjectReferences 프로젝트 참조 서비스 엔드포인트의 프로젝트 참조를 설정합니다.

지원되는 형식 및 해당 필수 입력 매개 변수 목록은 다음 REST API 항목을 검토합니다.

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

서비스 연결 유형 및 매개 변수에 대한 설명은 Common Service 연결 형식을 참조하세요.

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.
  • 조직: 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 토큰을 묻는 메시지를 표시합니다. 자동화를 위해 환경 변수를 사용하여 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 .

OpenSSL을 사용하여 .pem 파일을 만들 수 있습니다.

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