Dela via


Distributionslägen för Databricks Asset Bundle

I den här artikeln beskrivs syntaxen för distributionslägena för Databricks Asset Bundle . Paket möjliggör programmatisk hantering av Azure Databricks-arbetsflöden. Se Vad är Databricks-tillgångspaket?

I CI/CD-arbetsflöden kodar, testar, distribuerar och kör utvecklare vanligtvis lösningar i olika faser eller lägen. Till exempel innehåller den enklaste uppsättningen lägen ett utvecklingsläge för förproduktionsvalidering, följt av ett produktionsläge för verifierade slutprodukt. Databricks Asset Bundles innehåller en valfri samling standardbeteenden som motsvarar var och en av dessa lägen. Dina paketdistributioner kan använda dessa beteenden med en enradslägesdeklaration i stället för att manuellt ange dessa standardbeteenden i paketkonfigurationsfilen och kanske glömma att lägga till eller konfigurera något av de mer avsedda beteendena längs vägen.

Utvecklingsläge

Om du vill distribuera ditt paket i utvecklingsläge måste du först lägga till mappningen mode , inställd developmentpå , till det avsedda målet. Det här målet med namnet dev behandlas till exempel som ett utvecklingsmål:

targets:
  dev:
    mode: development

När du distribuerar ett utvecklingsmål genom att databricks bundle deploy -t <target-name> köra kommandot implementeras följande beteenden:

  • Förbereder alla resurser som inte distribueras som filer eller notebook-filer med prefixet [dev ${workspace.current_user.userName}] och taggarna för varje distribuerat jobb och pipeline med en dev Azure Databricks-tagg.
  • Markerar alla relaterade distribuerade Delta Live Tables-pipelines som development: true. Se Använda utvecklingsläge för att köra pipelineuppdateringar.
  • Aktiverar användning av --compute-id <cluster-id> i relaterade anrop till bundle deploy kommandot, vilket åsidosätter alla befintliga klusterdefinitioner som redan har angetts i den relaterade paketkonfigurationsfilen. I stället för att använda --compute-id <cluster-id> relaterade anrop till bundle deploy kommandot kan du ange mappningen compute_id här, eller som en underordnad mappning av mappningen bundle , till ID:t för klustret som ska användas.
  • Pausar alla scheman och utlösare för distribuerade jobb. Ta bort pausscheman och utlösare för ett enskilt jobb genom att ange schedule.pause_status till UNPAUSED.
  • Aktiverar samtidiga körningar på alla distribuerade jobb för snabbare iteration. Inaktivera samtidiga körningar för ett enskilt jobb genom att ange max_concurrent_runs till 1.
  • Inaktiverar distributionslåset för snabbare iteration. Det här låset förhindrar distributionskonflikter som sannolikt inte inträffar i utvecklingsläge. Återaktivera låset genom att ange bundle.deployment.lock.enabled till true.

Produktionsläge

Om du vill distribuera paketet i produktionsläge måste du först lägga till mappningen mode , inställd productionpå , till det avsedda målet. Det här målet med namnet prod behandlas till exempel som ett produktionsmål:

targets:
  prod:
    mode: production

När du distribuerar ett produktionsmål genom att databricks bundle deploy -t <target-name> köra kommandot implementeras följande beteenden:

  • Verifierar att alla relaterade distribuerade Delta Live Tables-pipelines har markerats som development: false.

  • Verifierar att den aktuella Git-grenen är lika med Git-grenen som anges i målet. Det är valfritt att ange en Git-gren i målet och kan göras med ytterligare en git egenskap enligt följande:

    git:
      branch: main
    

    Den här verifieringen kan åsidosättas genom att --force ange när du distribuerar.

  • Databricks rekommenderar att du använder tjänstens huvudnamn för produktionsdistributioner. Du kan framtvinga detta genom att ange run_as tjänstens huvudnamn. Se Hantera tjänstens huvudnamn och Ange en körningsidentitet för ett Databricks Asset Bundles-arbetsflöde. Observera följande ytterligare beteenden om du inte använder tjänstens huvudnamn:

    • Verifierar att artifact_path, file_path, root_patheller state_path mappningar inte åsidosätts för en viss användare.
    • Verifierar att run_as mappningarna och permissions anges för att klargöra vilka identiteter som har specifika behörigheter för distributioner.
  • Till skillnad från föregående beteende för att ställa in mode mappningen på developmenttillåter inte inställningen mode mappning till production att åsidosätta befintliga klusterdefinitioner som anges i den relaterade paketkonfigurationsfilen, till exempel med hjälp --compute-id <cluster-id> av alternativet eller mappningen compute_id .