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

Azure cli 명령을 사용하여 세부 정보를 얻고, 서비스 엔드포인트를 나열, 삭제 및 업데이트할 수도 있습니다. Azure DevOps CLI 예제, 서비스 엔드포인트 또는 서비스 연결에 대한 인덱스를 참조 하세요.

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

구성 파일을 사용하여 서비스 엔드포인트 만들기

구성 파일을 사용하여 서비스 엔드포인트를 만들려면 먼저 구성 파일을 정의해야 합니다. 구성 파일의 내용은 Azure 클래식, Azure Data Explorer, Bitbucket Cloud, Chef 등과 같은 연결 유형에 따라 다릅니다.

구성 파일 형식

다음 구문은 구성 파일의 json 형식을 보여줍니다.

{
  "data": {},
  "name": "MyNewServiceEndpoint",
  "type": "Generic",
  "url": "https://myserver",
  "authorization": {
    "parameters": {
      "username": "myusername",
      "password": "mysecretpassword"
    },
    "scheme": "UsernamePassword"
  },
  "isShared": false,
  "isReady": true,
  "serviceEndpointProjectReferences": [
    {
      "projectReference": {
        "id": "c7e5f0b3-71fa-4429-9fb3-3321963a7c06",
        "name": "TestProject"
      },
      "name": "MyNewServiceEndpoint"
    }
  ]
}

다음 표에서는 각 매개 변수에 대해 설명합니다. 매개 변수는 type 모든 유형의 서비스 엔드포인트 만들기를 지원합니다.

매개 변수 형식 Description
name string 엔드포인트의 이름을 설정합니다.
type string 엔드포인트의 형식을 설정합니다.
url string 엔드포인트의 URL을 설정합니다.
authorization EndpointAuthorization 엔드포인트와 통신하기 위한 권한 부여 데이터를 설정합니다.
isShared 부울 값 서비스 엔드포인트가 다른 프로젝트와 공유되는지 여부를 나타냅니다.
isReady 부울 값 엔드포인트 상태 표시기입니다.
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 있는 구성 파일의 이름입니다.
  • 인코딩: 선택 사항입니다. 입력 파일의 인코딩입니다. 기본값은 utf-8입니다. 허용되는 값: ascii, utf-16be, utf-16leutf-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": {
      "password": null,
      "username": "myusername"
    },
    "scheme": "UsernamePassword"
  },
  "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 애플리케이션에서 인증에 인증서를 사용하는 경우 인증서에 대한 .pem 파일을 만들고 인수를 사용하여 --azure-rm-service-principal-certificate-path .pem 파일에 경로를 전달합니다.

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

openssl pkcs12 -in file.pfx -out file.pem -nodes -password pass:<password_here>