승인 및 검사 정의

Azure Pipelines

파이프라인은 단계로 구성 됩니다. 파이프라인 작성자는 스테이지에서 조건을 정의 하 여 스테이지를 실행할지 여부를 제어할 수 있습니다. 단계를 실행 해야 하는지 여부와 시기를 제어 하는 또 다른 방법은 승인 및 검사 를 통해입니다.

Pipelines 환경, 서비스 연결, 에이전트 풀, 변수 그룹, 보안 파일 등의 리소스를 사용 합니다. 검사를 사용 하면 모든 파이프라인의 단계에서 리소스를 사용할 수 있는지 여부와 시기를 제어할 수 있습니다. 리소스의 소유자는 해당 리소스를 사용 하는 단계를 시작 하기 전에 충족 해야 하는 검사를 정의할 수 있습니다. 예를 들어 환경의 수동 승인 확인 은 지정 된 사용자가 배포 중인 변경 내용을 검토 한 후에만 해당 환경에 대 한 배포가 수행 되도록 합니다.

스테이지는 여러 작업으로 구성 될 수 있으며, 각 작업은 여러 리소스를 소비할 수 있습니다. 단계 실행을 시작 하기 전에 해당 단계에서 사용 되는 모든 리소스에 대 한 모든 검사를 충족 해야 합니다. Azure Pipelines 각 단계 전에 파이프라인 실행을 일시 중지 하 고 보류 중인 모든 검사가 완료 될 때까지 대기 합니다. 검사는 각 검사에 지정 된 다시 시도 간격에 따라 재평가 됩니다. 제한 시간이 지정 된 후에도 모든 검사가 성공 하지 않으면 해당 단계가 실행 되지 않습니다. Terminally 검사가 실패 하는 경우 (예: 리소스 중 하나에 대 한 승인을 거부 한 경우)에는 해당 단계가 실행 되지 않습니다.

승인 및 기타 검사는 yaml 파일에 정의 되어 있지 않습니다. 파이프라인 yaml 파일을 수정 하는 사용자는 단계를 시작 하기 전에 수행 된 검사를 수정할 수 없습니다. 리소스 관리자는 Azure Pipelines의 웹 인터페이스를 사용 하 여 검사를 관리 합니다.

중요

검사는 환경, 서비스 연결, 리포지토리, 변수 그룹, 보안 파일 및 에이전트 풀에 대해 구성할 수 있습니다.

변수에 의해 서비스 연결을 지정할 수 없습니다.

승인

승인 확인을 사용 하 여 단계를 실행 하는 시기를 수동으로 제어할 수 있습니다. 프로덕션 환경에 대 한 배포를 제어 하는 데 일반적으로 사용 됩니다.

  1. Azure DevOps 프로젝트에서 보호 해야 하는 리소스 (예: 환경)로 이동 합니다.

  2. 리소스의 승인 및 확인 으로 이동합니다.

환경에 대 한 승인 및 확인

  1. 만들기 를 선택 하 고 승인자와 선택적 메시지를 제공 하 고 만들기 를 다시 선택 하 여 수동 승인 확인 추가를 완료 합니다.

환경에 여러 승인자를 추가할 수 있습니다. 이러한 승인자는 개별 사용자 또는 사용자 그룹 일 수 있습니다. 그룹이 승인자로 지정 된 경우에는 해당 그룹의 한 사용자만이 실행을 위해 승인 해야 합니다.

고급 옵션을 사용 하 여 승인 완료를 위한 최소 승인자 수를 구성할 수 있습니다. 그룹은 하나의 승인자로 간주 됩니다.

또한 실행을 요청한 (시작 또는 생성) 사용자가 승인 완료를 제한할 수 있습니다. 이 옵션은 사용자 간에 역할을 분리 하는 데 주로 사용 됩니다.

파이프라인을 실행 하면 해당 환경을 사용 하는 단계를 시작 하기 전에 실행 실행이 일시 중지 됩니다. 승인자로 구성 된 사용자는 배포를 검토 하 고 승인 하거나 거부 해야 합니다. 여러 번 실행을 동시에 실행 하는 경우 각각을 개별적으로 승인 하거나 거부 해야 합니다. 모든 필수 승인이 승인에 지정 된 시간 제한 내에 완료 되지 않고 기타 모든 검사가 성공 하면 단계는 건너뜀으로 표시 됩니다.

분기 제어

분기 제어 검사를 사용 하 여 파이프라인과 연결 된 모든 리소스가 허용 되는 분기에서 빌드되고 분기에서 보호가 사용 되도록 설정 되었는지 확인할 수 있습니다. 이는 릴리스 준비 및 배포 품질을 제어 하는 데 도움이 됩니다. 여러 리소스가 파이프라인과 연결 된 경우 모든 리소스의 소스가 확인 됩니다. 다른 파이프라인을 연결한 경우 배포 되는 특정 실행의 분기는 보호를 위해 확인 됩니다.

분기 컨트롤 검사를 정의 하려면 다음을 수행 합니다.

  1. Azure DevOps 프로젝트에서 보호 해야 하는 리소스 (예: 환경)로 이동 합니다.

  2. 리소스의 승인 및 확인 으로 이동합니다.

  3. 분기 컨트롤 검사를 선택 하 고 허용 되는 분기의 쉼표로 구분 된 목록을 제공 합니다. 분기에서 보호를 사용 하도록 설정 하 고 분기 중 하나에 대 한 체크 인 대비 보호 상태 동작을 알 수 없도록 지정할 수 있습니다.

분기 제어 검사를 구성 하 고 있습니다.

런타임에 검사는 허용 목록에 대해 실행의 연결 된 모든 리소스에 대 한 분기의 유효성을 검사 합니다. 조건에 일치 하는 분기가 없으면 검사가 실패 하 고 단계가 실패로 표시 됩니다.

참고

검사를 수행 하려면 분기 이름이 정규화 되어야 합니다. 분기 이름 형식이 인지 확인 합니다. refs/heads/<branch name>

업무 시간

특정 기간 내에 환경에 대 한 모든 배포를 수행 하려는 경우 업무 시간 검사가 이상적인 솔루션입니다. 파이프라인을 실행 하면 리소스를 사용 하는 단계를 실행 하면 업무 시간 동안 대기 합니다. 여러 번 실행을 동시에 실행 하는 경우 각 실행은 독립적으로 확인 됩니다. 업무 시간이 시작 될 때 검사가 모든 실행에 대해 성공으로 표시 됩니다.

업무 시간 검사를 구성 합니다.

업무 시간 (일부 다른 검사까지 보류)에서 단계 실행이 시작 되지 않은 경우 업무 시간 승인이 자동으로 취소 되 고 다음 날에 대해 재평가가 예약 됩니다. 단계 실행이 검사에 지정 된 시간 제한 내에 시작 되지 않고 단계가 실패로 표시 되는 경우 확인이 실패 합니다.

Azure 함수 호출

Azure 함수는 Azure에서 제공 하는 서버를 사용 하지 않는 계산 플랫폼입니다. Azure 함수를 사용 하면 응용 프로그램 인프라에 대해 걱정 하지 않고 작은 코드 ("함수" 라고 함)를 실행할 수 있습니다. 높은 유연성을 제공 하는 Azure 함수는 고유한 검사를 작성 하는 훌륭한 방법을 제공 합니다. 각 실행이 http 요청에서 트리거되고 짧은 실행 시간을 가지 며 응답을 반환 하도록 하는 체크 인 Azure 함수의 논리를 포함 합니다. 검사를 정의 하는 동안 확인이 성공적으로 수행 되 면 응답 본문을 구문 분석 하 여 유추할 수 있습니다. 제어 옵션에서 평가 사이의 시간 설정을 사용 하 여 주기적으로 계산을 반복할 수 있습니다. 자세한 내용

Azure function check를 구성 하는 중입니다.

지정 된 시간 제한 기간 내에 단계가 실행을 시작 하지 않은 경우 검사가 실패 합니다. 자세한 내용은 Azure 함수 앱 작업 을 참조 하세요.

참고

사용자 정의 파이프라인 변수는 검사에 사용할 수 없습니다. 요청 본문의 연결 된 변수 그룹에서 미리 정의 된 변수 및 변수에만 액세스할 수 있습니다.

REST API 호출

REST API 검사를 호출 하면 기존 서비스와 통합할 수 있습니다. 정기적으로 REST API에 대 한 호출을 수행 하 고 성공적인 응답을 반환 하는 경우 계속 합니다. 자세한 내용

제어 옵션에서 평가 사이의 시간 설정을 사용 하 여 주기적으로 계산을 반복할 수 있습니다. 지정 된 시간 제한 기간 내에 단계가 실행을 시작 하지 않은 경우 검사가 실패 합니다. 자세한 내용은 REST API 작업 호출 을 참조 하세요.

참고

사용자 정의 파이프라인 변수는 검사에 사용할 수 없습니다. 요청 본문의 연결 된 변수 그룹에서 미리 정의 된 변수 및 변수에만 액세스할 수 있습니다.

Azure Monitor 경고 쿼리

Azure Monitor는 Azure 인프라 및 각 개별 Azure 리소스의 데이터에 대 한 시각화, 쿼리, 라우팅, 경고, 자동 크기 조정 및 자동화를 제공 합니다. 경고는 인프라 또는 응용 프로그램의 상태 문제를 감지 하 고 정정 작업을 수행 하는 표준 수단입니다. 카나리아 배포 및 단계적 롤아웃은 중요 한 응용 프로그램에 대 한 재발 위험을 낮추는 데 사용 되는 일반적인 배포 전략입니다. 단계 (고객 집합)에 배포한 후 응용 프로그램은 일정 기간 동안 관찰 됩니다. 배포 후 응용 프로그램의 상태를 사용 하 여 다음 단계에 대 한 업데이트를 수행할지 여부를 결정 합니다.

쿼리 Azure Monitor 경고는 Azure Monitor 관찰 하 고 배포 후 응용 프로그램에 대 한 경고가 발생 하지 않도록 하는 데 도움이 됩니다. 평가 시에 활성화 된 경고 규칙이 없으면 검사가 성공 합니다. 자세한 내용

제어 옵션에서 평가 설정 사이 시간이 지나면 계산이 반복 됩니다. 지정 된 시간 제한 기간 내에 단계가 실행을 시작 하지 않은 경우 검사가 실패 합니다.

필수 템플릿

필요한 템플릿 검사를 사용 하 여 특정 YAML 템플릿을 사용 하도록 파이프라인을 적용할 수 있습니다. 이 검사가 수행 되는 경우 참조 된 템플릿에서 확장 되지 않으면 파이프라인이 실패 합니다.

필수 템플릿 승인을 정의 하려면:

  1. Azure DevOps 프로젝트에서 제한 하려는 서비스 연결 로 이동 합니다.

  2. 승인을 열고 편집 옆의 메뉴에서 확인 합니다.

  3. 첫 번째 확인 메뉴 추가 에서 필수 템플릿 을 선택 합니다.

  4. 필요한 템플릿 파일을 가져오는 방법에 대 한 세부 정보를 입력 합니다.

    • 리포지토리 유형: 리포지토리의 위치 (GitHub, Azure 또는 Bitbucket)입니다.
    • 리포지토리: 템플릿을 포함 하는 리포지토리의 이름입니다.
    • Ref: 필수 템플릿의 분기 또는 태그입니다.
    • 필요한 템플릿의 경로: 템플릿의 이름입니다.

동일한 서비스 연결에 대해 여러 필수 템플릿이 있을 수 있습니다. 이 예제에서 필요한 템플릿은 required.yml 입니다.

필수 템플릿 검사를 구성 하는 중입니다.

아티팩트 평가

사용자 지정 정책에 대해 환경에 배포할 아티팩트를 평가할 수 있습니다.

참고

현재이는 컨테이너 이미지 아티팩트와만 작동 합니다.

아티팩트에 대 한 사용자 지정 정책 평가를 정의 하려면 아래 단계를 수행 합니다.

  1. Azure DevOps Services 프로젝트에서 보호 해야 하는 환경으로 이동 합니다. 환경 만들기에 대해 자세히 알아보세요.

환경 보기.

  1. 환경에 대 한 승인 및 확인 으로 이동 합니다.

환경에 검사를 추가 합니다.

  1. 아티팩트 평가 를 선택 합니다.

아티팩트 평가 확인을 추가 합니다.

  1. 정책 정의를 붙여넣고 저장 을 클릭 합니다. 정책 정의 작성에 대 한 자세한 내용을 참조 하세요.

정책 정의를 추가 합니다.

파이프라인을 실행 하면 해당 환경을 사용 하는 단계를 시작 하기 전에 실행 실행이 일시 중지 됩니다. 지정 된 정책은 사용 가능한 이미지 메타 데이터에 대해 평가 됩니다. 정책이 성공 하면 검사가 성공 하 고 그렇지 않은 경우 실패 합니다. 검사가 실패 하는 경우 단계가 실패로 표시 됩니다.

통과 한 검사 보기.

파이프라인 보기에서 정책 검사의 전체 로그를 확인할 수도 있습니다.

통과 한 확인 로그 보기

배타 잠금

배타적 잠금 검사를 사용 하면 파이프라인에서 단일 실행만 진행할 수 있습니다. 리소스를 사용 하는 해당 파이프라인의 모든 실행에 대 한 모든 단계는 일시 중지 됩니다. 잠금을 사용 하는 단계가 완료 되 면 다른 단계에서 해당 리소스를 계속 사용할 수 있습니다. 또한 한 단계만 계속 진행할 수 있습니다. 잠금을 시도 하는 다른 모든 단계는 취소 됩니다.

ServiceNow 변경 관리

이 검사를 수행 하려면 marketplace에서 ServiceNow 변경 관리 확장 을 설치 해야 합니다.

Servicenow 변경 관리 검사를 사용 하면 파이프라인의 servicenow 변경 관리 프로세스를 통합할 수 있습니다. 검사를 추가 하면 ServiceNow의 새 변경 요청을 단계 시작 시 자동으로 만들 수 있습니다. 파이프라인은 단계를 시작 하기 전에 변경 프로세스가 완료 될 때까지 기다립니다. 세부 정보는 여기에서 확인할 수 있습니다.

FAQ

정의 된 검사가 시작 되지 않았습니다. 무슨 일이 일어났나요?

단계 조건이 충족 되 면 검사 평가가 시작 됩니다. 리소스에 검사를 추가 하 고 단계에서 리소스를 사용 하는 경우 시작 된 단계의 실행을 확인 해야 합니다.

단계를 예약 하기 위해 확인을 사용 하려면 어떻게 해야 하나요?

업무 시간 검사를 사용 하 여 단계 실행 시작 시간을 제어할 수 있습니다. 디자이너 릴리스의 단계에서 미리 정의 된 일정과 동일한 동작을 수행할 수 있습니다.

나중에 실행 되도록 예약 된 단계에 대 한 사전 승인은 어떻게 할 수 있나요?

이 시나리오를 사용 하도록 설정할 수 있습니다.

  1. 업무 시간 검사를 사용 하면 리소스에 배포 하는 모든 단계를 시간 창 간에 실행 되도록 예약할 수 있습니다.
  2. 동일한 리소스에서 승인이 구성 된 경우 단계는 시작 하기 전에 승인을 기다립니다.
  3. 리소스에 대 한 검사를 모두 구성할 수 있습니다. 단계는 승인 및 업무 시간에 대기 합니다. 승인이 완료 된 후 예약 된 다음 창에서 시작 됩니다.

배포 되는 아티팩트에 대 한 보안 검사가 완료 될 때까지 기다릴 수 있나요?

배포 되는 아티팩트에 대 한 보안 검색이 완료 될 때까지 대기 하려면 AquaScan와 같은 외부 스캔 서비스를 사용 해야 합니다. 배포 되는 아티팩트는 검사를 시작 하기 전에 검색 서비스에 액세스할 수 있는 위치에 업로드 해야 하며 미리 정의 된 변수를 사용 하 여 식별할 수 있습니다. 호출 REST API 검사를 사용 하 여 보안 서비스에서 API를 대기 하는 검사를 추가 하 고 아티팩트 식별자를 입력으로 전달할 수 있습니다.

검사에서 이전 단계의 출력 변수를 사용 하려면 어떻게 해야 하나요?

기본적으로 미리 정의 된 변수만 검사할 수 있습니다. 연결 된 변수 그룹을 사용 하 여 다른 변수에 액세스할 수 있습니다. 이전 단계의 출력 변수를 변수 그룹에 쓰고 확인 시 액세스할 수 있습니다.