이 빠른 시작에서는 Contoso Resource Tagger라는 샘플 Azure Developer CLI(azd) 확장을 빌드합니다. 개발자 확장을 사용하여 azd Go 프로젝트를 스캐폴드하고, 사용자 지정 명령을 추가하고, 확장을 로컬로 실행합니다. 여기서 만드는 샘플 확장은 기능을 추가하고, azd와 통신하고, MCP(모델 컨텍스트 프로토콜) 서버를 추가하고, 작업을 게시하는 방법을 보여 주는 이 섹션의 다른 문서들을 위한 출발점입니다.
시작하기 전에 확장 개발의 개념을 알아보려면 확장 개발 개념을 참조하세요.
Note
azd 확장 프레임워크는 일반적으로 사용할 수 있습니다. 개별 확장 또는 기능에는 자체 미리 보기 상태가 있을 수 있습니다.
사전 요구 사항
- Azure 개발자 CLI를 설치하세요.
- Go 1.26 이상을 설치합니다.
- 코드 편집기(예: Visual Studio Code)
azd 에는 기본적으로 공식 확장 원본이 포함되어 있습니다. URL 기반 또는 파일 기반 원본, 로컬 개발 레지스트리, 옵트인 개발 또는 야간 레지스트리 및 이식 가능한 .zip 번들에서 확장을 설치할 수도 있습니다. 자세한 내용은 확장 개발 개념을 참조하세요.
팁 (조언)
azd 프로젝트가 확장 제공 호스트, 공급자, 유효성 검사, 수명 주기 처리기 또는 명령에 종속된 경우 해당 필수 확장을 azure.yaml 버전 제약 조건으로 선언합니다. 자세한 내용은 requiredVersions참조하세요.
개발자 확장 설치
azd개발자 확장 프로그램(microsoft.azd.extensions)은 확장 프로그램을 빌드하는 데 사용하는 azd x 명령을 제공합니다.
공식 확장 원본에서 개발자 확장을 설치합니다.
azd extension install microsoft.azd.extensions확장이 설치되어 있는지 확인합니다.
azd extension list --installed개발자 확장은
x네임스페이스 아래에 일련의 명령을 등록합니다. 실행azd x하여 사용 가능한 명령을 확인합니다.
샘플 확장 프로그램의 기본 구조 만들기
명령을 azd x init 사용하여 새 확장 프로젝트를 스캐폴드합니다.
확장을 위한 디렉터리를 만들고 변경합니다.
mkdir azd-extensions cd azd-extensionsgit 리포지토리를 초기화하고 초기 커밋을 만듭니다. 이
azd x init명령을 사용하려면 git에서 확장 폴더를 추적해야 합니다.git init git commit --allow-empty -m "Initial commit"azd x init명령을 실행하여 확장을 스캐폴드합니다.azd x init메시지가 표시되면 다음 값을 제공합니다.
프롬프트 가치 확장 프로그램 ID contoso.azd.tagger표시 이름 Contoso Resource TaggerDescription Standardize and report Azure resource tags for an azd project.네임스페이스 tagger역량 Custom commandsLanguage Go
이 명령은 확장을 스캐폴드하고, 초기 이진 파일을 빌드하고, 확장을 패키지하고, 로컬 확장 원본에 게시하고, 즉시 사용할 수 있도록 로컬로 설치합니다.
프로젝트 구조 살펴보기
이 azd x init 명령은 다음 키 파일을 사용하여 프로젝트를 생성합니다.
contoso.azd.tagger/
├── bin/ # Contains built binaries
├── build.ps1 # Windows build script
├── build.sh # Unix build script
├── CHANGELOG.md # Version history and release notes
├── extension.yaml # Extension metadata and capabilities
├── main.go # Entry point for the extension
├── go.mod # Go module definition
└── internal/ # Internal implementation code
가장 중요한 파일은 다음과 같습니다.
-
extension.yaml: 확장에 대한 메타데이터, 기능 및 명령을 정의합니다. 자세한 내용은 확장 매니페스트 정의를 참조하세요. -
main.go: 확장의 루트 명령을 실행하는 진입점입니다. -
build.sh및build.ps1: 지원되는 각 플랫폼(Linux, Windows 및 macOS)에 대해 별도의 이진 파일을 컴파일하는 플랫폼 간 빌드 스크립트입니다. -
CHANGELOG.md: 버전 간에 변경 내용을 문서화하고 게시할 때 릴리스 정보를 제공합니다.
사용자 지정 명령 추가
인사말을 show 인쇄하는 명령을 추가하여 확장이 작동하는지 확인합니다. 정확한 파일 레이아웃은 시작 템플릿에 따라 달라지지만 패턴은 동일합니다. Cobra 명령을 정의하고 루트 명령에 등록합니다.
internal/cmd디렉터리에서 다음 콘텐츠로 명명된show.go파일을 만듭니다.package cmd import ( "fmt" "github.com/spf13/cobra" ) func newShowCommand() *cobra.Command { return &cobra.Command{ Use: "show", Short: "Displays a greeting from the Contoso Resource Tagger extension.", RunE: func(cmd *cobra.Command, args []string) error { fmt.Println("Hello from the Contoso Resource Tagger extension!") return nil }, } }루트 명령에 명령을 등록합니다. 파일에서
internal/cmd/root.go다음 줄을 다른AddCommand함수 다음에 파일 아래쪽에 추가합니다.rootCmd.AddCommand(newShowCommand())
확장 실행
확장을 실행하기 전에 패키지를 패키지하고 로컬 확장 원본에 게시하여 변경 내용을 등록합니다.
확장을 패키지합니다.
azd x pack확장을 게시하여 등록합니다.
azd x publish새 명령을 실행합니다.
azd tagger show출력은 다음 예제와 유사합니다.
Hello from the Contoso Resource Tagger extension!
이제 빌드할 수 있는 작업 확장이 있습니다.
개발 중 변경 내용 감시
변경할 때마다 azd x pack 및 azd x publish를 수동으로 실행하는 대신, 개발하는 동안 확장을 자동으로 빌드하고 설치하려면 azd x watch를 사용하세요.
확장 디렉터리에서 감시자를 시작합니다.
azd x watch두 번째 터미널에서 명령을 실행하여 변경 내용을 테스트합니다.
azd tagger show
감시자를 사용하는 대신 수동으로 확장을 빌드하려면 다음을 실행합니다 azd x build.
자원을 정리하세요
실험을 마치면 샘플 확장을 제거합니다.
azd extension uninstall contoso.azd.tagger
관련 콘텐츠
샘플 확장에서 빌드를 계속하려면 다음 문서를 참조하세요. 각 문서는 독립적이므로 어떤 순서로든 완료할 수 있습니다.