Azure Pipelines를 사용하여 설정을 App Configuration으로 밀어넣기

Azure App Configuration Push 작업을 통해 키-값을 구성 파일에서 App Configuration 저장소로 밀어넣을 수 있습니다. 이 작업을 통해 App Configuration 저장소에서 설정을 끌어올 뿐 아니라 App Configuration 저장소로 설정을 밀어넣을 수도 있으므로 파이프라인 내에서 전체 원 기능을 사용할 수 있습니다.

필수 조건

서비스 연결 만들기

서비스 연결을 통해 Azure DevOps 프로젝트에서 Azure 구독의 리소스에 액세스할 수 있습니다.

  1. Azure DevOps에서 대상 파이프라인이 포함된 프로젝트로 이동합니다. 왼쪽 하단에서 프로젝트 설정을 선택합니다.

  2. 파이프라인 아래에서 서비스 연결을 선택합니다. 오른쪽 상단에서 새 서비스 연결을 선택합니다.

  3. 새 서비스 연결에서 Azure Resource Manager를 선택합니다.

    Screenshot shows selecting Azure Resource Manager from the New service connection dropdown list.

  4. 인증 방법 대화 상자에서 서비스 주체(자동)를 선택하여 새 서비스 주체를 만들거나 서비스 주체(수동)를 선택하여 기존 서비스 주체를 사용합니다.

  5. 구독, 리소스 그룹 및 서비스 연결 이름을 입력합니다.

새 서비스 주체를 만든 경우 서비스 연결에 할당된 서비스 주체의 이름을 찾습니다. 다음 단계에서 이 서비스 주체에 새 역할 할당을 추가합니다.

  1. 프로젝트 설정>서비스 연결로 이동합니다.

  2. 새 서비스 연결을 선택합니다.

  3. 서비스 주체 관리를 선택합니다.

  4. 표시 이름의 값을 확인합니다.

    Screenshot shows the service principal display name.

역할 할당 추가

작업이 App Configuration 저장소에 액세스할 수 있도록 작업 내에서 사용 중인 자격 증명에 적절한 App Configuration 역할 할당을 할당합니다.

  1. 대상 App Configuration 저장소로 이동합니다.

  2. 왼쪽 메뉴에서 액세스 제어(IAM)를 선택합니다.

  3. 오른쪽 창에서 역할 할당 추가를 선택합니다.

    Screenshot shows the Add role assignments button.

  4. 역할에 대해 App Configuration 데이터 소유자를 선택합니다. 이 역할을 통해 App Configuration 저장소에서 읽고 쓰는 작업을 수행할 수 있습니다.

  5. 이전 섹션에서 만든 서비스 연결과 연관된 서비스 주체를 선택합니다.

    Screenshot shows the Add role assignment dialog.

  6. 검토 + 할당을 선택합니다.

빌드에 사용

이 섹션에서는 Azure DevOps 빌드 파이프라인에서 Azure App Configuration Push 작업을 사용하는 방법을 설명합니다.

  1. 파이프라인>파이프라인을 클릭하여 빌드 파이프라인 페이지로 이동합니다. 빌드 파이프라인에 대한 설명서는 여기에서 확인할 수 있습니다.
    • 새 빌드 파이프라인을 만드는 경우 프로세스 마지막 단계의 검토 탭에 있는 파이프라인 오른쪽에서 도우미 표시를 선택합니다.

      Screenshot shows the Show assistant button for a new pipeline.

    • 기존 빌드 파이프라인을 사용하는 경우 오른쪽 위에서 편집 단추를 클릭합니다.

      Screenshot shows the Edit button for an existing pipeline.

  2. Azure App Configuration Push 작업을 검색합니다.

    Screenshot shows the Add Task dialog with Azure App Configuration Push in the search box.

  3. 작업에 필요한 매개 변수를 구성하여 구성 파일에서 App Configuration 저장소로 키-값을 밀어넣습니다. 매개 변수에 대한 설명은 아래 매개 변수 섹션과 각 매개 변수 옆에 있는 도구 설명에 있습니다.

    Screenshot shows the app configuration push task parameters.

  4. 빌드를 저장하고 큐에 넣습니다. 빌드 로그에는 작업 실행 중 발생한 모든 오류가 표시됩니다.

릴리스에 사용

이 섹션에서는 Azure DevOps 릴리스 파이프라인에서 Azure App Configuration Push 작업을 사용하는 방법을 설명합니다.

  1. Pipelines>릴리스를 선택하여 릴리스 파이프라인 페이지로 이동합니다. 릴리스 파이프라인에 대한 설명서는 여기에서 확인할 수 있습니다.
  2. 기존 릴리스 파이프라인을 선택합니다. 기존 릴리스 파이프라인이 없는 경우 + 새로 만들기를 선택하여 새 항목을 만듭니다.
  3. 오른쪽 위 모서리에서 편집 단추를 선택하여 릴리스 파이프라인을 편집합니다.
  4. 작업 드롭다운에서 작업을 추가할 스테이지를 선택합니다. 스테이지에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

    Screenshot shows the selected stage in the Tasks dropdown.

  5. 새 작업을 추가할 작업 옆의 +를 클릭합니다.

    Screenshot shows the plus button next to the job.

  6. 작업 추가 대화 상자에서 검색 상자에 Azure App Configuration Push를 입력하고 이를 선택합니다.
  7. 작업 내에서 필요한 매개 변수를 구성하여 구성 파일에서 App Configuration 저장소로 키-값을 밀어넣습니다. 매개 변수에 대한 설명은 아래 매개 변수 섹션과 각 매개 변수 옆에 있는 도구 설명에 있습니다.
  8. 릴리스를 저장하고 큐에 넣습니다. 릴리스 로그에 작업 실행 중 발생한 모든 오류가 표시됩니다.

매개 변수

다음 매개 변수는 App Configuration Push 작업에 사용됩니다.

  • Azure 구독: 사용 가능한 Azure 서비스 연결이 포함된 드롭다운입니다. 사용 가능한 Azure 서비스 연결 목록을 업데이트하고 새로 고치려면 텍스트 상자 오른쪽에서 Azure 구독 새로 고침 단추를 누릅니다.
  • App Configuration 엔드포인트: 선택한 구독 아래에서 사용 가능한 구성 저장소 엔드포인트를 로드하는 드롭다운입니다. 사용 가능한 구성 저장소 엔드포인트 목록을 업데이트하고 새로 고치려면 텍스트 상자 오른쪽에서 App Configuration 엔드포인트 새로 고침 단추를 누릅니다.
  • 구성 파일 경로: 구성 파일에 대한 경로입니다. 구성 파일 경로 매개 변수는 파일 리포지토리의 루트에서 시작합니다. 구성 파일을 선택하려면 빌드 아티팩트를 통해 찾아볼 수 있습니다. 텍스트 상자 오른쪽에 있는 ... 단추를 눌러 찾을 수 있습니다. 지원되는 파일 형식은 파일 콘텐츠 프로필에 따라 달라집니다. 기본 프로필의 경우 지원되는 파일 형식은 yaml, json 및 속성입니다. KvSet 프로필의 경우 지원되는 파일 형식은 json입니다.
  • 파일 콘텐츠 프로필: 구성 파일의 콘텐츠 프로필입니다. 기본값은 기본값입니다.
    • 기본값: 애플리케이션에서 직접 사용할 수 있는 기존 구성 파일 형식을 나타냅니다.
    • Kvset: 키, 값, 레이블, 콘텐츠 형식 및 태그를 포함하여 App Configuration 키 값의 모든 속성을 포함하는 파일 스키마를 참조합니다. Kvset 프로필을 사용하는 경우 작업 매개 변수 'Separator', 'Label', 'Content type', 'Prefix', 'Tags' 및 'Depth'는 적용되지 않습니다.
  • 가져오기 모드: 기본값은 모두입니다. 키-값을 가져올 때 동작을 결정합니다.
    • 모두: 구성 파일의 모든 키-값을 App Configuration으로 가져옵니다.
    • Ignore-Match: App Configuration에 일치하는 키-값이 없는 설정만 가져옵니다. 일치하는 키-값은 동일한 키, 레이블, 값, 콘텐츠 형식 및 태그가 있는 키 값으로 간주됩니다.
  • 드라이 런: 기본값은 선택 취소됨입니다.
    • 선택됨: App Configuration에 대한 업데이트가 수행되지 않습니다. 대신 일반 실행에서 수행된 모든 업데이트는 검토를 위해 콘솔에 출력됩니다.
    • 선택 취소됨: App Configuration에 대한 업데이트를 수행하며 콘솔에 출력되지 않습니다.
  • 구분 기호: .json 및 .yml 파일을 평면화하는 데 사용되는 구분 기호입니다.
  • 깊이: .json 및 .yml 파일이 평면화될 깊이입니다.
  • 접두사: App Configuration 저장소에 밀어넣은 각 키의 시작 부분에 추가되는 문자열입니다.
  • 레이블: App Configuration 저장소 내의 레이블로 각 키-값에 추가되는 문자열입니다.
  • 콘텐츠 형식: App Configuration 저장소 내의 콘텐츠 형식으로 각 키-값에 추가되는 문자열입니다.
  • 태그: {"tag1":"val1", "tag2":"val2"} 형식의 JSON 개체로 App Configuration 저장소에 밀어넣은 각-키 값에 추가되는 태그를 정의합니다.
  • 구성 파일에 포함되지 않은 키-값 삭제: 기본값은 선택 취소입니다. 이 옵션의 동작은 구성 파일 콘텐츠 프로필에 따라 달라집니다.
    • 선택됨:
      • 기본 콘텐츠 프로필: 구성 파일에서 새 키-값을 밀어넣기 전에 App Configuration 저장소에서 지정된 접두사 및 레이블과 일치하는 모든 키-값을 제거합니다.
      • Kvset 콘텐츠 프로필: 구성 파일에서 새 키-값을 밀어넣기 전에 App Configuration 저장소에서 구성 파일에 포함되지 않은 모든 키-값을 제거합니다.
    • 선택 취소: 구성 파일에서 App Configuration 저장소로 모든 키-값을 밀어넣고 App Configuration 저장소에 있는 다른 모든 키-값을 그대로 유지합니다.

문제 해결

예기치 않은 오류가 발생하면 파이프라인 변수 system.debugtrue로 설정하여 디버그 로그를 사용하도록 설정할 수 있습니다.

FAQ

여러 구성 파일을 업로드하려면 어떻게 하나요?

동일한 파이프라인 내에 Azure App Configuration Push 작업의 여러 인스턴스를 만들어 여러 구성 파일을 App Configuration 저장소에 밀어넣습니다.

이 작업을 사용하여 Key Vault 참조 또는 기능 플래그를 만들려면 어떻게 해야 하나요?

선택한 파일 콘텐츠 프로필에 따라 구성 파일에 대한 Azure App Configuration 지원의 예제를 참조하세요.

구성 저장소에 키-값을 밀어넣으려고 할 때 409 오류가 발생하는 이유는 무엇인가요?

App Configuration 저장소에 잠긴 키-값을 제거하거나 덮어쓰려고 하면 409 충돌 오류 메시지가 나타납니다.