Azure DevOps를 사용하여 Stream Analytics 작업용 CI/CD 파이프라인 만들기

이 문서에서는 Azure Stream Analytics CI/CD 도구를 사용하여 Azure DevOps 빌드릴리스 파이프라인을 만드는 방법에 대해 알아봅니다.

Stream Analytics 프로젝트 커밋

시작하기 전에 전체 Stream Analytics 프로젝트를 원본 파일로 Azure DevOps 리포지토리에 커밋합니다. Azure Pipelines에서 이 샘플 리포지토리Stream Analytics 프로젝트 소스 코드를 참조할 수 있습니다.

이 문서의 단계에서는 Stream Analytics Visual Studio Code 프로젝트가 사용됩니다. Visual Studio 프로젝트를 사용하는 경우 CI/CD 도구를 사용하여 Azure Stream Analytics 작업의 빌드, 테스트 및 배포 자동화의 단계를 따르세요.

빌드 파이프라인 만들기

이 섹션에서는 빌드 파이프라인을 만드는 방법에 대해 알아봅니다.

  1. 웹 브라우저를 열고 Azure DevOps에서 프로젝트로 이동합니다.

  2. 왼쪽 탐색 메뉴의 파이프라인에서 빌드를 선택합니다. 그런 다음, 새 파이프라인을 선택합니다.

    Create new Azure Pipeline

  3. 클래식 편집기 사용을 선택해 YAML 없이 파이프라인을 만듭니다.

  4. 원본 형식, 팀 프로젝트 및 리포지토리를 선택합니다. 그런 다음, 계속을 선택합니다.

    Select Azure Stream Analytics project

  5. 템플릿 선택 페이지에서 빈 작업을 선택합니다.

npm 패키지 설치

  1. 작업 페이지에서 에이전트 작업 1 옆에 있는 더하기 기호를 선택합니다. 작업 검색에서 npm을 입력하고 npm을 선택합니다.

    Select npm task

  2. 작업에 표시 이름을 지정합니다. 명령 옵션을 사용자 지정으로 변경하고 명령 및 인수에 다음 명령을 입력합니다. 나머지 기본 옵션은 그대로 둡니다.

    install -g azure-streamanalytics-cicd
    

    Enter configurations for npm task

호스팅 Linux 에이전트를 사용해야 하는 경우 다음 단계를 사용합니다.

  1. 에이전트 사양 선택

    Screenshot of selecting agent specification.

  2. 작업 페이지에서 에이전트 작업 1 옆에 있는 더하기 기호를 선택합니다. 작업 검색에 명령줄을 입력하고 명령줄을 선택합니다.

    Screenshot of searching commandline task.

  3. 작업에 표시 이름을 지정합니다. 스크립트에 다음 명령을 입력합니다. 나머지 기본 옵션은 그대로 둡니다.

    sudo npm install -g azure-streamanalytics-cicd --unsafe-perm=true --allow-root
    

    Screenshot of entering script for cmd task.

빌드 작업 추가

  1. 변수 페이지의 파이프라인 변수에서 + 추가를 선택합니다. 다음 변수를 추가합니다. 기본 설정에 따라 다음 값을 설정합니다.

    변수 이름
    projectRootPath [YourProjectName]
    outputPath 출력
    deployPath 배포
  2. 작업 페이지에서 에이전트 작업 1 옆에 있는 더하기 기호를 선택합니다. 명령줄을 검색합니다.

  3. 작업에 표시 이름을 지정하고 다음 스크립트를 입력합니다. 리포지토리 이름 및 프로젝트 이름으로 스크립트를 수정합니다.

    참고 항목

    배포를 위해 build --v2을(를) 사용하여 ARM 템플릿을 생성하는 것이 좋습니다. 새 ARM 템플릿에는 이전 버전과 동일한 기능을 유지하면서 매개 변수가 적습니다.

    이전 ARM 템플릿은 곧 더 이상 사용되지 않으며 build --v2을(를) 사용하여 만든 템플릿만 업데이트 및 버그 수정을 받게 됩니다.

    azure-streamanalytics-cicd build --v2 -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(deployPath)
    

    아래 이미지는 Stream Analytics Visual Studio Code 프로젝트를 예제로 사용합니다.

    Enter configurations for command-line task visual studio code

테스트 작업 추가

  1. 변수 페이지의 파이프라인 변수에서 + 추가를 선택합니다. 다음 변수를 추가합니다. 출력 경로 및 리포지토리 이름으로 값을 수정합니다.

    변수 이름
    testPath 테스트

    Add pipeline variables

  2. 작업 페이지에서 에이전트 작업 1 옆에 있는 더하기 기호를 선택합니다. 명령줄을 검색합니다.

  3. 작업에 표시 이름을 지정하고 다음 스크립트를 입력합니다. 프로젝트 파일 이름 및 테스트 구성 파일의 경로를 사용하여 스크립트를 수정합니다.

    테스트 사례를 추가하고 구성하는 방법에 대한 자세한 내용은 자동화된 테스트 지침을 참조하세요.

    azure-streamanalytics-cicd test -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(testPath) -testConfigPath $(projectRootPath)/test/testConfig.json 
    

    Enter configurations for command-line task

파일 복사 작업 추가

파일 복사 작업을 추가하여 테스트 요약 파일 및 Azure Resource Manager 템플릿 파일을 아티팩트 폴더에 복사해야 합니다.

  1. 작업 페이지에서 에이전트 작업 1 옆에 있는 +를 선택합니다. 파일 복사를 검색합니다. 그런 다음, 다음 구성을 입력합니다. 콘텐츠**을(를) 할당하면 테스트 결과의 모든 파일이 복사됩니다.

    매개 변수 입력
    표시 이름 파일 복사 위치: $(build.artifactstagingdirectory)
    원본 폴더 $(system.defaultworkingdirectory)/$(outputPath)/
    콘텐츠 **
    대상 폴더 $(build.artifactstagingdirectory)
  2. 제어 옵션을 확장합니다. 작업 실행에서 이전 작업에 실패했더라도 빌드가 취소되지 않은 경우를 선택합니다.

    Enter configurations for copy task

빌드 아티팩트 게시 작업 추가

  1. 작업 페이지에서 에이전트 작업 1 옆에 있는 더하기 기호를 선택합니다. 빌드 아티팩트 게시를 검색하고 검은색 화살표 아이콘을 사용하여 옵션을 선택합니다.

  2. 제어 옵션을 확장합니다. 작업 실행에서 이전 작업에 실패했더라도 빌드가 취소되지 않은 경우를 선택합니다.

    Enter configurations for publish task

저장 및 실행

npm 패키지, 명령줄, 파일 복사 및 빌드 아티팩트 게시 작업을 모두 추가했으면 저장 및 큐를 선택합니다. 메시지가 표시되면 저장 주석을 입력하고 저장 및 실행을 선택합니다. 파이프라인의 요약 페이지에서 테스트 결과를 다운로드할 수 있습니다.

빌드 및 테스트 결과 검사

게시 폴더에서 테스트 요약 파일 및 Azure Resource Manager 템플릿 파일을 찾을 수 있습니다.

Check build and test result

Check artifacts

Azure Pipelines을 사용한 릴리스

이 섹션에서는 릴리스 파이프라인을 만드는 방법에 대해 알아봅니다.

웹 브라우저를 열고 Azure Stream Analytics Visual Studio Code 프로젝트로 이동합니다.

  1. 왼쪽 탐색 메뉴의 파이프라인에서 릴리스를 선택합니다. 그런 다음, 새 파이프라인을 선택합니다.

  2. 빈 작업으로 시작을 선택합니다.

  3. 아티팩트 상자에서 + 아티팩트 추가를 선택합니다. 원본에서 만든 빌드 파이프라인을 선택하고 추가를 선택합니다.

    Enter build pipeline artifact

  4. 스테이지 1의 이름을 테스트 환경에 작업 배포로 변경합니다.

  5. 새 스테이지를 추가하고 이름을 프로덕션 환경에 작업 배포로 지정합니다.

배포 작업 추가

참고 항목

Override template parameters은(는) 매개 변수가 개체로 전달되므로 ARM --v2 빌드에는 이 적용되지 않습니다. 이 문제를 해결하려면 파이프라인에 PowerShell 스크립트를 포함하여 매개 변수 파일을 JSON으로 읽고 필요한 매개 변수를 수정하는 것이 좋습니다.

PowerShell 스크립트를 추가하는 방법에 대한 자세한 내용은 ConvertFrom-JsonJSON 파일의 개체 업데이트를 참조하세요.

  1. 작업 드롭다운에서 테스트 환경에 작업 배포를 선택합니다.

  2. 에이전트 작업 옆에 있는 +를 선택하고 ARM 템플릿 배포를 검색합니다. 다음 매개 변수를 입력합니다.

    매개 변수
    표시 이름 myASAProject 배포
    Azure 구독 구독을 선택합니다.
    작업 리소스 그룹 만들기 또는 업데이트
    Resource group Stream Analytics 작업을 포함할 테스트 리소스 그룹의 이름을 선택합니다.
    위치 테스트 리소스 그룹의 위치를 선택합니다.
    템플릿 위치 연결된 아티팩트
    템플릿 $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    템플릿 매개 변수 $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    템플릿 매개 변수 재정의 -<arm_template_parameter> “사용자 값”. 변수를 사용하여 매개 변수를 정의할 수 있습니다.
    배포 모드 증분
  3. 작업 드롭다운에서 프로덕션 환경에 작업 배포를 선택합니다.

  4. 에이전트 작업 옆에 있는 +를 선택하고 ARM 템플릿 배포를 검색합니다. 다음 매개 변수를 입력합니다.

    매개 변수
    표시 이름 myASAProject 배포
    Azure 구독 구독을 선택합니다.
    작업 리소스 그룹 만들기 또는 업데이트
    Resource group Stream Analytics 작업을 포함할 프로덕션 리소스 그룹의 이름을 선택합니다.
    위치 프로덕션 리소스 그룹의 위치를 선택합니다.
    템플릿 위치 연결된 아티팩트
    템플릿 $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    템플릿 매개 변수 $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    템플릿 매개 변수 재정의 -<arm_template_parameter> “사용자 값”
    배포 모드 증분

릴리스 만들기

릴리스를 만들려면 오른쪽 위 모서리에서 릴리스 만들기를 선택합니다.

Create a release using Azure Pipelines

다음 단계