Python, JavaScript, TypeScript 또는 .NET에서 azd 후크 작성

Azure 개발자 CLI(azd) 후크 시스템은 Bash 및 PowerShell 외에도 Python, JavaScript, TypeScript.NET 을 지원합니다. azd 는 파일 확장자에서 언어를 자동으로 검색하고, 종속성을 관리하며, 추가 구성 없이 스크립트를 실행합니다.

후크를 사용하면 프로비전 전, 배포 후 등과 같은 수명 주기의 주요 지점에서 azd 사용자 지정 논리를 실행할 수 있습니다. 사용 가능한 후크 이벤트 및 구성 옵션을 포함하여 후크에 대한 일반적인 정보는 명령 및 이벤트 후크를 사용하여 워크플로 사용자 지정을 참조하세요.

사전 요구 사항

언어 감지

스크립트 파일 azure.yaml의 후크를 가리키고 azd 파일 확장자의 언어를 유추합니다. 확장이 모호하거나 누락된 경우 필드를 사용하여 언어를 kind 명시적으로 지정합니다.

hooks:
  preprovision:
    run: ./hooks/setup.py
    kind: python    # explicit — overrides extension inference

Python 후크

Python 후크를 작성하려면 .py 파일을 만들고 이를 azure.yaml에 참조하십시오. requirements.txt 스크립트 또는 pyproject.toml 부모 디렉터리와 동일한 디렉터리에 배치합니다. azd 는 스크립트 위치에서 디렉터리 트리를 걸어 가장 가까운 프로젝트 파일을 찾고, 가상 환경을 만들고, 종속성을 설치하고, 스크립트를 실행합니다.

디렉터리 구조 예제

hooks/
├── setup.py
└── requirements.txt

구성 예

hooks:
  preprovision:
    run: ./hooks/setup.py

Python 관련 구성

config 블록을 사용하여 기본 가상 환경 이름을 재정의합니다.

hooks:
  preprovision:
    run: ./hooks/setup.py
    config:
      virtualEnvName: .venv   # override default naming

JavaScript 및 TypeScript 훅

JavaScript 또는 TypeScript 후크를 작성하려면 .js 또는 .ts 파일을 생성한 후, 이를 azure.yaml에 참조하십시오. package.json 스크립트 또는 부모 디렉터리와 동일한 디렉터리에 배치합니다. azdconfig 블록에 지정된 패키지 관리자 npm install(를) 실행하고 스크립트를 실행합니다. TypeScript 스크립트는 npx tsx를 통해 컴파일 단계나 tsconfig.json 없이 실행됩니다.

디렉터리 구조 예제

hooks/
├── seed.ts
└── package.json

구성 예

hooks:
  postdeploy:
    run: ./hooks/seed.ts

JavaScript 및 TypeScript 구성

config 블록을 사용하여 기본 패키지 관리자를 지정합니다.

hooks:
  postdeploy:
    run: ./hooks/seed.ts
    config:
      packageManager: pnpm    # npm | pnpm | yarn

.NET 후크

.NET 후크에는 다음 두 가지 모드가 지원됩니다.

  • 프로젝트 모드: 스크립트 또는 .csproj 부모 .fsproj 디렉터리와 동일한 디렉터리에 있는 경우 .vbprojazd자동으로 실행됩니다 dotnet restoredotnet build.
  • 단일 파일 모드: .NET 10 이상에서는 독립 실행형 .cs 파일이 프로젝트 파일 없이 직접 dotnet run script.cs 실행됩니다.

디렉터리 구조 예제

hooks/
├── migrate.cs
└── migrate.csproj   # optional — omit for single-file mode on .NET 10+

구성 예

hooks:
  postprovision:
    run: ./hooks/migrate.cs

. NET 관련 구성

블록을 사용하여 빌드 구성 및 대상 프레임워크를 지정합니다.config

hooks:
  postprovision:
    run: ./hooks/migrate.cs
    config:
      configuration: Release  # Debug | Release
      framework: net10.0      # target framework

작업 디렉터리 재정의

필드를 사용하여 dir 후크의 작업 디렉터리를 설정합니다. 이 구성은 프로젝트 루트가 스크립트 위치와 다른 경우에 유용합니다.

hooks:
  preprovision:
    run: main.py
    dir: hooks/preprovision

언어 및 형식 혼합

동일한 azure.yaml 파일의 다른 후크에 다른 언어를 사용합니다. 다중 언어 후크를 플랫폼별 재정의와 결합할 수도 있습니다.

hooks:
  preprovision:
    run: ./hooks/setup.py

  postdeploy:
    run: ./hooks/seed.ts

  postprovision:
    run: ./hooks/migrate.cs

  predeploy:
    windows:
      run: ./hooks/build.ps1
    posix:
      run: ./hooks/build.sh

도움말 요청

버그를 제출하거나, 도움말을 요청하거나, Azure 개발자 CLI에 대한 새 기능을 제안하는 방법에 대한 자세한 내용은 troubleshooting and support 페이지를 방문하세요.