확장 게시

Azure 개발자 CLI(azd) 확장을 빌드한 후 다른 사용자가 설치할 수 있도록 레지스트리에 패키지하고 게시합니다. 이 문서에서는 샘플 확장 빌드 빠른 시작에서 Contoso Resource Tagger 샘플 확장을 게시하는 방법을 보여줍니다. 모든 확장에 동일한 단계를 적용할 수 있습니다.

Note

azd 확장 프레임워크는 일반적으로 사용할 수 있습니다. 개별 확장 또는 기능에는 자체 미리 보기 상태가 있을 수 있습니다.

레지스트리 선택

azd 는 공식 레지스트리, 사용자 지정 URL 기반 레지스트리 매니페스트, 파일 기반 레지스트리 매니페스트 및 이식 가능한 번들 파일에서 확장을 확인할 수 있습니다. 사용자가 확장을 설치하는 방법과 일치하는 배포 방법을 선택합니다.

  • 공식 레지스트리: azd에 포함되어 제공되는 레지스트리입니다. 여기에 게시하려면 끌어오기 요청을 azure/azure-dev 리포지토리의 포크에 제출합니다.
  • 사용자 지정 URL 기반 레지스트리: 팀에서 퍼블릭 또는 프라이빗 배포를 위해 호스트하는 원격 레지스트리 매니페스트입니다.
  • 파일 기반 레지스트리: 개발, 테스트, 오프라인 사용 또는 프라이빗 배포를 위한 로컬 레지스트리 매니페스트입니다.
  • 개발 또는 야간 레지스트리: 진행 중인 작업 또는 자동으로 빌드된 자사 확장을 위한 옵트인 레지스트리입니다. 개발 레지스트리의 확장은 서명되지 않으며 Azure 지원 적용되지 않으며 예고 없이 변경하거나 제거할 수 있습니다.
  • 이식 가능한 번들: 사용자가 레지스트리 원본을 .zip 추가하지 않고 로컬 경로 또는 HTTPS URL에서 직접 설치하는 자체 포함 패키지입니다.

이 문서에서는 개발 레지스트리를 사용하여 공유 테스트 원본에 게시하는 방법을 보여 줍니다. 원본 및 버전 확인 세부 정보는 확장 프레임워크 참조를 참조하세요.

사전 요구 사항

  • 샘플 확장 프로그램 빌드 빠른 시작에서 완성한 확장 프로그램입니다.
  • azd 패키지 및 게시에 사용되는 명령을 제공하는 microsoft.azd.extensions 개발자 확장(azd x)입니다. 빠른 시작을 완료한 경우 이미 설치되어 있습니다. 그렇지 않으면 을 실행합니다 azd extension install microsoft.azd.extensions.
  • 릴리스 아티팩트를 호스트할 GitHub 계정 및 리포지토리입니다.
  • repo 범위를 가진 GitHub 개인용 액세스 토큰(PAT) 릴리스 명령은 이 토큰을 사용하여 GitHub 릴리스를 만들고 아티팩트 업로드를 수행합니다. 자세한 내용은 개인용 액세스 토큰 관리를 참조하세요.

버전 업데이트 및 변경 로그

게시하기 전에 버전을 업데이트하고 변경 내용을 문서화합니다.

  1. version에서 extension.yaml를 따라 속성을 업데이트합니다. 변경 유형에 따라 메이저, 마이너 또는 패치 번호를 늘립니다.

  2. 이 버전의 주요 변경 사항으로 CHANGELOG.md을 업데이트합니다. azd 에서는 changelog를 사용하여 릴리스 정보를 생성합니다.

확장을 패키징하세요

azd x pack 명령을 사용하여 플랫폼별 이진 파일을 빌드하고 확장을 패키지합니다.

azd x pack

이 명령은 출력 디렉터리에서 지원되는 각 플랫폼에 대한 아티팩트가 만들어집니다. azd x release 에서는 이러한 아티팩트가 업로드되고 azd x publish 레지스트리 메타데이터가 업데이트됩니다. 또한 패키징은 스냅샷 테스트를 실행하여 게시하기 전에 확장이 예상대로 작동하는지 확인합니다.

레지스트리를 통해 게시하는 대신 확장을 직접 배포하려면 .를 사용하여 자체 포함된 번들을 azd x pack --bundle만듭니다. 번들은 파일 경로 또는 HTTPS URL에서 설치하는 데 필요한 레지스트리 메타데이터 및 아티팩트를 포함하는 이식 가능한 .zip 항목입니다.

확장 릴리스

명령을 azd x release 사용하여 GitHub 릴리스를 만들고 패키지된 아티팩트를 업로드합니다. 명령이 릴리스를 만들 수 있도록 GitHub PAT를 제공합니다.

azd x release

이 명령은 GitHub 리포지토리에 릴리스를 만들고, 패키지된 이진 파일을 업로드하고, 변경 로그에서 릴리스 정보를 생성합니다. 레지스트리 기반 게시에서는 이러한 릴리스 아티팩트가 다운로드 가능한 확장 패키지로 사용됩니다. GitHub 번들을 호스트하려는 경우가 아니면 직접 번들 배포에 이 릴리스 단계가 필요하지 않습니다.

Tip

명령줄에 전달하는 대신 환경 변수에 GitHub PAT를 저장합니다. 지원되는 인증 옵션을 확인하려면 azd x release --help를 실행하여 명령 도움말을 확인하세요.

레지스트리에 게시

azd x publish 명령을 사용하여 확장 레지스트리에서 확장 항목을 추가하거나 업데이트합니다.

azd x publish

이 명령은 사용자가 개발 레지스트리에서 확장을 검색하고 설치할 수 있도록 레지스트리 메타데이터를 업데이트합니다. 이 단계는 빠른 시작에서 수행하는 로컬 게시 azd x init 와 다르며, 머신의 로컬 원본에만 확장을 등록합니다. 실행하면 azd x publish 다른 사용자가 확장을 설치할 수 있도록 공유 개발 레지스트리가 업데이트됩니다.

설치 및 확인

게시한 후 다른 사용자가 개발 레지스트리에서 확장을 설치할 수 있는지 확인합니다.

  1. 개발 레지스트리를 이미 추가했는지 확인합니다.

    azd extension source add -n dev -t url -l "https://aka.ms/azd/extensions/registry/dev"
    
  2. ID로 확장을 설치합니다.

    azd extension install contoso.azd.tagger
    
  3. 명령을 실행하여 확장이 작동하는지 확인합니다.

    azd tagger show
    

공식 레지스트리에 게시

공식 레지스트리에 게시하려면 azure/azure 개발 리포지토리에 확장을 제출합니다.

  1. azure/azure-dev 리포지토리를 포크하세요.
  2. 확장의 레지스트리 항목을 포크의 공식 레지스트리 파일에 추가합니다.
  3. 검토를 위해 풀 리퀘스트를 제출하세요.

Azure 개발자 CLI 팀은 병합하기 전에 품질 및 보안을 위해 공식 레지스트리 제출을 검토합니다.

게시 문제 해결

다음 표에는 일반적인 게시 문제 및 해결 방법이 나와 있습니다.

Issue 해결 방법
인증 오류로 릴리스 실패 GitHub PAT가 유효하고 범위가 repo 있는지 확인합니다.
azd x pack 중 스냅샷 테스트 실패 테스트 출력을 검토하고, 변경이 예상되는 경우 스냅샷을 업데이트하고, 명령을 다시 실행합니다.
사용자가 확장을 찾을 수 없습니다. 개발 레지스트리가 추가되고 azd x publish 성공적으로 완료되었는지 확인합니다.
게시 중 버전 충돌 version에서 extension.yaml을 아직 사용되지 않은 새 버전으로 증가시킵니다.