Escreve hooks azd em Python, JavaScript, TypeScript ou .NET

O sistema de hook Azure Developer CLI (azd) suporta Python, JavaScript, TypeScript e .NET , além de Bash e PowerShell. azd deteta automaticamente a linguagem da extensão de ficheiro, gere dependências e executa o script sem necessidade de configuração adicional.

Os ganchos permitem-lhe executar lógica personalizada em pontos-chave do azd ciclo de vida, como antes do provisionamento, após a implementação e mais. Para obter informações gerais sobre hooks, incluindo os eventos de hook disponíveis e opções de configuração, consulte Personalizar fluxos de trabalho utilizando hooks de comandos e eventos.

Pré-requisitos

Deteção de idioma

Aponta um gancho para um ficheiro de script em azure.yaml, e azd infere a linguagem a partir da extensão do ficheiro. Se a extensão for ambígua ou ausente, especifique explicitamente a linguagem com o kind campo:

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

Ganchos Python

Para escrever um hook em Python, crie um .py ficheiro e faça referência a ele no seu azure.yaml ficheiro. Coloque um requirements.txt ou pyproject.toml no mesmo diretório que o script ou um diretório pai. azd Sobe pela árvore de diretórios a partir da localização do script para encontrar o ficheiro de projeto mais próximo, cria um ambiente virtual, instala dependências e executa o script.

Exemplo de estrutura de diretórios

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

Exemplo de configuração

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

Configuração específica de Python

Use o config bloco para sobrepor o nome padrão do ambiente virtual.

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

Ganchos JavaScript e TypeScript

Para escrever hooks JavaScript ou TypeScript, crie um ficheiro .js ou .ts e referencie-o no seu azure.yaml. Coloque o package.json no mesmo diretório que o seu script ou num diretório pai. azd executa npm install (ou o gestor de pacotes especificado no config bloco) e executa o script. TypeScript scripts são executados via npx tsx sem necessidade de etapa de compilação ou de tsconfig.json.

Exemplo de estrutura de diretórios

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

Exemplo de configuração

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

Configuração JavaScript e TypeScript

Use o bloco config para especificar um gestor de pacotes preferido.

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

Ganchos .NET

São suportados dois modos para hooks .NET:

  • Modo projeto: Se um .csproj, .fsproj, ou .vbproj existir no mesmo diretório que o script ou um diretório pai, azd executa-se dotnet restore e dotnet build automaticamente.
  • Modo de um único ficheiro: No .NET 10+, os ficheiros autónomos .cs são executados diretamente via dotnet run script.cs sem ficheiro de projeto.

Exemplo de estrutura de diretórios

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

Exemplo de configuração

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

Configuração específica do .NET

Especifique a configuração da build e o framework de destino usando o bloco config :

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

Sobrescrever o diretório de trabalho

Define o diretório de trabalho para um hook usando o dir campo. Esta configuração é útil quando a raiz do projeto difere da localização do script:

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

Mistura de línguas e formatos

Use linguagens diferentes para diferentes hooks no mesmo azure.yaml ficheiro. Também pode combinar ganchos multilíngues com sobreposições específicas da plataforma:

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

Pedir ajuda

Para informações sobre como registar um bug, pedir ajuda ou propor uma nova funcionalidade para a Azure Developer CLI, por favor visite a página troubleshooting and support.