SSIS(SQL Server Integration Services) DevOps 도구 Azure DevOps 확장

SSIS DevOps 도구 확장은 Azure DevOps Marketplace에서 제공됩니다. SSIS DevOps는 Azure DevOps Services, Azure DevOps Server 2019 이상을 지원합니다.

Azure DevOps 조직이 없는 경우 먼저 Azure Pipelines에 등록한 다음, 단계에 따라 SSIS DevOps 도구 확장을 추가합니다.

SSIS DevOps 도구에는 SSIS 빌드 작업, SSIS 배포 릴리스 작업, SSIS 카탈로그 구성 작업이 포함되어 있습니다.

  • SSIS 빌드 작업은 프로젝트 배포 모델 또는 패키지 배포 모델의 dtproj 파일 빌드를 지원합니다.

  • SSIS 배포 작업은 단일 또는 여러 ispac 파일을 온-프레미스 SSIS 카탈로그 및 Azure-SSIS IR에 배포하거나 SSISDeploymentManifest 파일 및 관련 파일을 온-프레미스 또는 Azure 파일 공유에 배포할 수 있도록 지원합니다.

  • SSIS 카탈로그 구성 작업은 JSON 형식의 구성 파일을 사용하여 SSIS 카탈로그의 폴더/프로젝트/환경을 구성할 수 있도록 지원합니다. 이 작업은 다음과 같은 시나리오를 지원합니다.

    • 폴더
      • 폴더를 만듭니다.
      • 폴더 설명을 업데이트합니다.
    • 프로젝트
      • 매개 변수의 구성 값입니다. literal 값과 referenced 값이 모두 지원됩니다.
      • 환경 참조를 추가합니다.
    • 환경
      • 환경을 만듭니다.
      • 환경 설명을 업데이트합니다.
      • 환경 변수를 만들거나 업데이트합니다.

SSIS 빌드 작업

build task

속성

프로젝트 경로

빌드할 프로젝트 폴더 또는 파일의 경로입니다. 폴더 경로를 지정하면 SSIS 빌드 작업은 이 폴더 아래에 있는 모든 dtproj 파일을 재귀적으로 검색하고 모두 빌드합니다.

프로젝트 경로는 비워 둘 수 없습니다. 리포지토리의 루트 폴더에서 빌드하려면 .로 설정합니다.

프로젝트 구성

빌드에 사용할 프로젝트 구성의 이름입니다. 지정하지 않으면 기본적으로 각 dtproj 파일에 정의된 첫 번째 프로젝트 구성으로 설정됩니다.

출력 경로

빌드 결과를 저장할 별도 폴더의 경로이며, 빌드 아티팩트 게시 작업을 통해 빌드 아티팩트로 게시할 수 있습니다.

제한 사항 및 알려진 문제

  • SSIS 빌드 작업은 빌드 에이전트의 필수 요소인 Visual Studio 및 SSIS 디자이너를 사용합니다. 따라서 파이프라인에서 SSIS 빌드 작업을 실행하려면 다음을 수행합니다.

    • Microsoft 호스팅 에이전트의 경우 Visual Studio 및 SQL Server Integration Services 확장을 포함하는 사용 가능한 이미지(예 : windows-2022)를 선택해야 합니다. 자세한 내용은 사용 가능한 이미지에 포함된 소프트웨어에 대한 Microsoft 호스트된 에이전트 설명서를 참조하세요.
    • 자체 호스팅 에이전트의 경우 자체 호스팅 에이전트에 Visual Studio 및 SSIS 디자이너(VS2022 + SSIS 프로젝트 확장 또는 VS2019 + SSIS 프로젝트 확장)를 설치합니다.
  • OOB 구성 요소(SSIS Azure 기능 팩 및 기타 타사 구성 요소 포함)를 사용하여 SSIS 프로젝트를 빌드하려면 파이프라인 에이전트가 실행되는 머신에 OOB 구성 요소를 설치해야 합니다. Microsoft 호스트된 에이전트의 경우 사용자는 PowerShell 스크립트 작업 또는 명령줄 스크립트 작업을 추가하여 SSIS 빌드 작업이 실행되기 전에 구성 요소를 다운로드하고 설치할 수 있습니다. 다음은 Azure 기능 팩을 설치하는 샘플 PowerShell 스크립트입니다.

wget -Uri https://download.microsoft.com/download/E/E/0/EE0CB6A0-4105-466D-A7CA-5E39FA9AB128/SsisAzureFeaturePack_2017_x86.msi -OutFile AFP.msi

start -Wait -FilePath msiexec -Args "/i AFP.msi /quiet /l* log.txt"

cat log.txt
  • 보호 수준 EncryptSensitiveWithPasswordEncryptAllWithPassword는 SSIS 빌드 작업에서 지원되지 않습니다. 코드베이스의 모든 SSIS 프로젝트에서 이러한 두 보호 수준을 사용하지 않는지 확인하세요. 사용하면 SSIS 빌드 작업이 실행 중에 응답하지 않고 시간 초과됩니다.

SSIS 빌드 작업 버전 1.*

버전 1.*의 향상된 기능:

  • Visual Studio 및 SSIS 디자이너에 대한 종속성을 제거합니다. 빌드 작업은 Windows OS 및 .NET Framework 4.6.2 이상으로 Microsoft 호스팅 에이전트 또는 자체 호스팅 에이전트에서 실행할 수 있습니다.

  • 기본 구성 요소를 설치할 필요가 없습니다.

  • 보호 수준 EncryptionWithPassword 및 EncryptionAllWithPassword를 지원합니다.

제한 사항 및 알려진 문제

  • SSIS 빌드 작업 버전 1.*은 디지털 서명이 있는 SSIS 패키지를 포함하는 SSIS 프로젝트 빌드를 지원하지 않습니다.

버전 1.* 전용 속성

프로젝트 암호

SSIS 프로젝트 및 해당 패키지의 암호입니다. 이 인수는 SSIS 프로젝트 및 패키지의 보호 수준이 EncryptSensitiveWithPassword 또는 EncryptAllWithPassword인 경우에만 유효합니다. 패키지 배포 모델의 경우 모든 패키지에서 이 인수에 지정된 것과 동일한 암호를 공유해야 합니다.

중요한 데이터 제거

이 값이 true이면 SSIS 프로젝트의 보호 수준을 DontSaveSensitve로 변환합니다. 보호 수준이 EncryptSensitiveWithPassword 또는 EncryptAllWithPassword인 경우 인수 프로젝트 암호를 올바르게 설정해야 합니다. 이 옵션은 프로젝트 배포 모델에만 사용할 수 있습니다.

SSIS 배포 작업

deploy task

속성

원본 경로

배포하려는 원본 ISPAC 또는 SSISDeploymentManifest 파일의 경로입니다. 이 경로는 폴더 경로 또는 파일 경로일 수 있습니다.

대상 형식

대상 유형입니다. 현재 SSIS 배포 작업은 다음 두 가지 유형을 지원합니다.

  • ‘파일 시스템’: SSISDeploymentManifest 파일 및 관련 파일을 지정된 파일 시스템에 배포합니다. 온-프레미스와 Azure 파일 공유가 모두 지원됩니다.
  • SSISDB: 온-프레미스 SQL Server 또는 Azure-SSIS Integration Runtime에 호스트될 수 있는 지정된 SSIS 카탈로그에 ISPAC 파일을 배포합니다.

대상 서버

대상 데이터베이스 엔진 이름입니다. 온-프레미스 SQL Server, Azure SQL Database 또는 Azure SQL Managed Instance의 이름일 수 있습니다. 이 속성은 대상 유형이 SSISDB인 경우에만 표시됩니다.

대상 경로

원본 파일이 배포되는 대상 폴더의 경로입니다. 다음은 그 예입니다.

  • /SSISDB/<folderName>
  • \\<machineName>\<shareFolderName>\<optionalSubfolderName>

SSIS 배포 작업은 폴더 및 하위 폴더가 없을 경우 이를 새로 만듭니다.

인증 유형

지정된 대상 서버에 액세스하기 위한 인증 유형입니다. 이 속성은 대상 유형이 SSISDB인 경우에만 표시됩니다. 일반적으로 다음과 같은 인증 유형이 지원됩니다.

  • Windows 인증
  • SQL Server 인증
  • Active Directory - 암호
  • Active Directory - 통합

그러나 특정 인증 유형이 지원되는지 여부는 대상 서버 유형과 에이전트 유형에 따라 달라집니다. 자세한 지원 매트릭스는 아래 표에 나와 있습니다.

대상 서버 유형 Microsoft 호스팅 에이전트 자체 호스팅 에이전트
SQL Server 온-프레미스 또는 VM 해당 없음 Windows 인증
Azure SQL SQL Server 인증
Active Directory - 암호
SQL Server 인증
Active Directory - 암호
Active Directory - 통합

도메인 이름

지정된 파일 시스템에 액세스하기 위한 도메인 이름입니다. 이 속성은 대상 유형이 파일 시스템인 경우에만 표시됩니다. 자체 호스팅 에이전트를 실행하는 사용자 계정에 지정된 대상 경로에 대한 읽기/쓰기 권한이 부여된 경우에는 비워 둘 수 있습니다.

사용자 이름

지정된 파일 시스템 또는 SSISDB에 액세스하기 위한 사용자 이름입니다. 이 속성은 대상 유형이 파일 시스템이거나 인증 유형이 SQL Server 인증 또는 Active Directory - 암호인 경우에 표시됩니다. 대상 유형이 파일 시스템이고 자체 호스팅 에이전트를 실행하는 사용자 계정에 지정된 대상 경로에 대한 읽기/쓰기 권한이 부여된 경우에는 비워 둘 수 있습니다.

암호

지정된 파일 시스템 또는 SSISDB에 액세스하기 위한 암호입니다. 이 속성은 대상 유형이 파일 시스템이거나 인증 유형이 SQL Server 인증 또는 Active Directory - 암호인 경우에 표시됩니다. 대상 유형이 파일 시스템이고 자체 호스팅 에이전트를 실행하는 사용자 계정에 지정된 대상 경로에 대한 읽기/쓰기 권한이 부여된 경우에는 비워 둘 수 있습니다.

동일한 이름의 기존 프로젝트 또는 SSISDeploymentManifest 파일 덮어쓰기

동일한 이름의 기존 프로젝트 또는 SSISDeploymentManifest 파일을 덮어쓸지 여부를 지정합니다. ‘아니요’를 선택하면 SSIS 배포 작업은 해당 프로젝트 또는 파일 배포를 건너뜁니다.

오류 발생 시 배포 계속

오류 발생 시 남은 프로젝트 또는 파일을 계속 배포할지 여부를 지정합니다. ‘아니요’를 선택하면 오류 발생 시 SSIS 배포 작업이 즉시 중지됩니다.

제한 사항 및 알려진 문제

SSIS 배포 작업은 현재 다음 시나리오를 지원하지 않습니다.

  • SSIS 카탈로그에서 환경 구성
  • MFA(다단계 인증)만 허용하는 Azure SQL Server 또는 Azure SQL Managed Instance에 ISPAC 배포
  • MSDB 또는 SSIS 패키지 저장소에 패키지 배포
  • Azure DevOps Server에 SSIS DevOps Tools 확장을 설치하는 경우 "확장 패키지 크기가 최대 패키지 크기를 초과합니다."라는 메시지가 표시될 수 있습니다. 이 문제를 해결하려면 다음 단계를 완료합니다.
    1. 온-프레미스 SQL Server 인스턴스에 연결하고 Gallery_Configuration 데이터베이스를 선택합니다.
    2. 쿼리 INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50)를 실행합니다. 확장이 50MB보다 큰 경우 50을 더 높은 숫자로 변경합니다.
    3. 쿼리를 실행한 후 인터넷 정보 서비스를 다시 시작합니다. 확장을 업로드하려면 다시 시도합니다.
    4. 오류가 지속되면 SQL Server 지원 팀에 문의하세요.

SSIS 배포 작업 버전 1.*

버전 1.*의 향상된 기능:

  • 보호 수준 EncryptionWithPassword 및 EncryptionAllWithPassword를 지원합니다.

버전 1.* 전용 속성

프로젝트 암호

ISPAC 또는 DTSX 파일의 암호를 해독하는 암호입니다. 이 인수는 보호 수준이 EncryptSensitiveWithPassword 또는 EncryptAllWithPassword인 경우에만 유효합니다.

SSIS 카탈로그 구성 작업

catalog configuration task

속성

구성 파일 원본

SSIS 카탈로그 구성 JSON 파일의 원본입니다. “파일 경로” 또는 “인라인”일 수 있습니다.

구성 JSON을 정의하는 방법을 참조하세요.

구성 JSON 파일 경로

SSIS 카탈로그 구성 JSON 파일의 경로입니다. 이 속성은 구성 파일 원본으로 “파일 경로”를 선택한 경우에만 표시됩니다.

구성 JSON 파일에서 파이프라인 변수를 사용하려면 이 작업 앞에 파일 변환 작업을 추가하여 구성 값을 파이프라인 변수로 대체해야 합니다. 자세한 내용은 JSON variable substitution(JSON 변수 대체)을 참조하세요.

인라인 구성 JSON

SSIS 카탈로그 구성의 인라인 JSON입니다. 이 속성은 구성 파일 원본으로 “인라인”을 선택한 경우에만 표시됩니다. 파이프라인 변수는 직접 사용할 수 있습니다.

오류가 발생한 경우 구성 롤백

오류가 발생한 경우 이 작업에 의해 적용된 구성을 롤백할지 여부입니다.

대상 서버

대상 데이터베이스 엔진 이름입니다. 온-프레미스 SQL Server, Azure SQL Database 또는 Azure SQL Managed Instance의 이름일 수 있습니다.

인증 유형

지정된 대상 서버에 액세스하기 위한 인증 유형입니다. 일반적으로 다음과 같은 인증 유형이 지원됩니다.

  • Windows 인증
  • SQL Server 인증
  • Active Directory - 암호
  • Active Directory - 통합

그러나 특정 인증 유형이 지원되는지 여부는 대상 서버 유형과 에이전트 유형에 따라 달라집니다. 자세한 지원 매트릭스는 아래 표에 나와 있습니다.

대상 서버 유형 Microsoft 호스팅 에이전트 자체 호스팅 에이전트
SQL Server 온-프레미스 또는 VM 해당 없음 Windows 인증
Azure SQL SQL Server 인증
Active Directory - 암호
SQL Server 인증
Active Directory - 암호
Active Directory - 통합

사용자 이름

대상 SQL Server에 액세스하기 위한 사용자 이름입니다. 이 속성은 인증 유형이 SQL Server 인증 또는 Active Directory - 암호인 경우에만 표시됩니다.

암호

대상 SQL Server에 액세스하기 위한 암호입니다. 이 속성은 인증 유형이 SQL Server 인증 또는 Active Directory - 암호인 경우에만 표시됩니다.

구성 JSON 정의

구성 JSON 스키마에는 다음과 같은 3개의 레이어가 있습니다.

  • 카탈로그
  • 폴더
  • 프로젝트 및 환경

catalog configuration schema

샘플 인라인 구성 JSON

{
  "folders": [
    {
      "name": "devopsdemo",
      "description": "devops demo folder",
      "projects": [
        {
          "name": "catalog devops",
          "parameters": [
            {
              "name": "password",
              "container": "Package.dtsx",
              "value": "passwd",
              "valueType": "referenced"
            },
            {
              "name": "serverName",
              "container": "catalog devops",
              "value": "localhost",
              "valueType": "literal"
            }
          ],
          "references": [
            {
              "environmentName": "test",
              "environmentFolder": "devopsdemo"
            },
            {
              "environmentName": "test",
              "environmentFolder": "."
            }
          ]
        }
      ],
      "environments": [
        {
          "name": "test",
          "description": "test",
          "variables": [
            {
              "name": "passwd",
              "type": "string",
              "description": "",
              "value": "$(SSISDBServerAdminPassword)",
              "sensitive": true
            },
            {
              "name": "serverName",
              "type": "string",
              "description": "",
              "value": "$(TargetServerName)",
              "sensitive": false
            }
          ]
        }
      ]
    }
  ]
}

JSON 스키마

카탈로그 특성
속성 설명 메모
폴더 폴더 개체의 배열입니다. 각 개체에는 하나의 카탈로그 폴더에 대한 구성 정보가 포함되어 있습니다. 폴더 개체의 스키마는 ‘폴더 특성’을 참조하세요.
폴더 특성
속성 설명 참고
name 카탈로그 폴더의 이름입니다. 폴더가 존재하지 않는 경우 생성됩니다.
description 카탈로그 폴더에 대한 설명입니다. null의 값은 건너뜁니다.
projects 프로젝트 개체의 배열입니다. 각 개체에는 하나의 프로젝트에 대한 구성 정보가 포함되어 있습니다. 프로젝트 개체의 스키마는 ‘프로젝트 특성’을 참조하세요.
environments 환경 개체의 배열입니다. 각 개체에는 하나의 환경에 대한 구성 정보가 포함되어 있습니다. 환경 개체의 스키마는 ‘환경 특성’을 참조하세요.
프로젝트 특성
속성 설명 참고
name 프로젝트의 이름입니다. 부모 폴더에 프로젝트가 없는 경우 프로젝트 개체를 건너뜁니다.
매개 변수 매개 변수 개체의 배열입니다. 각 개체에는 하나의 매개 변수에 대한 구성 정보가 포함되어 있습니다. 매개 변수 개체의 스키마는 ‘매개 변수 특성’을 참조하세요.
references 참조 개체의 배열입니다. 각 개체는 대상 프로젝트에 대한 환경 참조를 나타냅니다. 참조 개체의 스키마는 ‘참조 특성’을 참조하세요.
매개 변수 특성
속성 설명 참고
name 매개 변수의 이름입니다.
  • 매개 변수는 ‘프로젝트 매개 변수’ 또는 ‘패키지 매개 변수’일 수 있습니다.
  • 매개 변수가 없으면 건너뜁니다.
  • 매개 변수가 연결 관리자 속성이면 이름은 CM.<연결 관리자 이름>.<속성 이름> 형식이어야 합니다.
  • container 매개 변수의 컨테이너입니다.
  • 매개 변수가 프로젝트 매개 변수이면 container는 프로젝트 이름이어야 합니다.
  • 매개 변수가 패키지 매개 변수이면 container.dtsx 확장자를 갖는 패키지 이름이어야 합니다.
  • 매개 변수의 값입니다.
  • valueTypereferenced인 경우: 값은 문자열 형식의 환경 변수에 대한 참조입니다.
  • valueTypeliteral인 경우: 이 특성은 임의의 유효한 ‘부울’, ‘숫자’ 및 ‘문자열’ JSON 값을 지원합니다.
  • 값은 대상 매개 변수 형식으로 변환됩니다. 변환할 수 없는 경우 오류가 발생합니다.
  • null 값은 유효하지 않습니다. 작업은 이 매개 변수 개체를 건너뛰고 경고를 표시합니다.
  • valueType 매개 변수 값의 유형입니다. 유효한 형식은 다음과 같습니다.
    literal: value 특성이 리터럴 값을 나타냅니다.
    referenced: value 특성이 환경 변수에 대한 참조를 나타냅니다.
    참조 특성
    속성 설명 메모
    environmentFolder 환경의 폴더 이름입니다. 폴더가 존재하지 않는 경우 생성됩니다.
    값은 환경을 참조하는 프로젝트의 부모 폴더를 나타내는 “.”일 수 있습니다.
    environmentName 참조된 환경의 이름입니다. 지정된 환경이 존재하지 않는 경우 생성됩니다.
    환경 특성
    속성 설명 참고
    name 환경의 이름입니다. 환경이 존재하지 않는 경우 생성됩니다.
    description 환경에 대한 설명입니다. null의 값은 건너뜁니다.
    variables 변수 개체의 배열입니다. 각 개체에는 하나의 환경 변수에 대한 구성 정보가 포함되어 있습니다. 변수 개체의 스키마는 ‘변수 특성’을 참조하세요.
    변수 특성
    속성 설명 참고
    name 환경 변수의 이름입니다. 환경 변수가 존재하지 않는 경우 생성됩니다.
    type 환경 변수의 데이터 형식입니다. 유효한 형식은 다음과 같습니다.
    boolean
    바이트
    datetime
    10 진수
    double
    int16
    int32
    int64
    sbyte
    single
    string
    uint32
    uint64
    description 환경 변수에 대한 설명입니다. null의 값은 건너뜁니다.
    환경 변수의 값입니다. 이 특성은 임의의 유효한 부울, 숫자 및 문자열 JSON 값을 지원합니다.
    값은 type 특성으로 지정된 형식으로 변환됩니다. 변환에 실패하면 오류가 발생합니다.
    null 값은 유효하지 않습니다. 작업은 이 환경 변수 개체를 건너뛰고 경고를 표시합니다.
    sensitive 환경 변수의 값이 민감한지 여부입니다. 유효한 입력은 다음과 같습니다.
    true
    false

    릴리스 정보

    버전 1.0.6

    릴리스 날짜: 2021년 9월 1일

    • GA(일반 공급) 릴리스

    버전 1.0.5

    릴리스 날짜: 2021년 6월 2일

    • 때때로 버전 1.*의 SSIS 빌드 작업이 보호 수준 EncryptSensitiveWithPassword 또는 EncryptAllWithPassword를 사용하여 프로젝트/패키지를 빌드하지 못하고 “지정된 IV(초기화 벡터)가 이 알고리즘의 블록 크기와 일치하지 않습니다.” 오류를 표시하는 이슈를 해결했습니다.
    • “구성 파일 원본”이 “파일 경로”인 경우 SSIS 카탈로그 구성 작업의 로그에서 JSON 콘텐츠를 제거했습니다.

    버전 1.0.4

    릴리스 날짜: 2021년 4월 21일

    • SSIS 빌드 작업 버전 1.*(미리 보기)
      • Visual Studio 및 SSIS 디자이너에 대한 종속성을 제거합니다. 빌드 작업은 Windows OS 및 .NET Framework 4.6.2 이상으로 Microsoft 호스팅 에이전트 또는 자체 호스팅 에이전트에서 실행할 수 있습니다.
      • 기본 구성 요소를 설치할 필요가 없습니다.
      • 보호 수준 EncryptionWithPassword 및 EncryptionAllWithPassword를 지원합니다.
    • SSIS 배포 작업 버전 1.*(미리 보기)
      • 보호 수준 EncryptionWithPassword 및 EncryptionAllWithPassword를 지원합니다.

    버전 1.0.3

    릴리스 날짜: 2020년 10월 21일

    • SSIS 배포 작업 및 SSIS 카탈로그 구성 작업에 연결 문자열 접미사를 지정할 수 있도록 허용합니다.

    버전 1.0.2

    릴리스 날짜: 2020년 5월 26일

    • 구성 작업이 완료된 후 SSIS 카탈로그 구성 작업이 실패할 수 있는 문제를 해결했습니다.

    버전 1.0.1

    릴리스 날짜: 2020년 5월 9일

    • 단일 dtproj 파일이 프로젝트 경로로 지정된 경우에도 SSIS 빌드 작업에서 항상 전체 솔루션을 빌드하는 문제를 해결했습니다.

    Version 1.0.0

    릴리스 날짜: 2020년 5월 8일

    • GA(일반 공급) 릴리스
    • 에이전트에서 최소 .NET Framework 버전의 제한을 추가했습니다. 현재 최소 .NET Framework 버전은 4.6.2입니다.
    • SSIS 빌드 태스크 및 SSIS 배포 태스크에 대한 구체화된 설명입니다.

    버전 0.2.0 미리 보기

    릴리스 날짜: 2020년 3월 31일

    • SSIS 카탈로그 구성 작업이 추가되었습니다.

    버전 0.1.3 미리 보기

    릴리스 날짜: 2020년 1월 19일

    • 원래 파일 이름이 변경된 경우 .ispac를 배포할 수 없었던 문제가 해결되었습니다.

    버전 0.1.2 미리 보기

    릴리스 날짜: 2020년 1월 13일

    • 대상 유형이 SSISDB인 경우, SSIS 배포 작업 로그에 자세한 예외 정보를 추가했습니다.
    • SSIS 배포 작업의 속성 대상 경로에 대한 도움말 텍스트의 예제 대상 경로를 수정했습니다.

    버전 0.1.1 미리 보기

    릴리스 날짜: 2020년 1월 6일

    • 최소 에이전트 버전 요구 사항의 제한이 추가되었습니다. 현재 이 제품의 최소 에이전트 버전은 2.144.0입니다.
    • SSIS 배포 작업의 일부 잘못된 표시 텍스트가 수정되었습니다.
    • 일부 오류 메시지가 구체화되었습니다.

    버전 0.1.0 미리 보기

    릴리스 날짜: 2019년 12월 5일

    SSIS DevOps 도구의 초기 릴리스입니다. 미리 보기 릴리스입니다.

    다음 단계