Skip to content

Data Engineer Professional · Domain 8: Debugging and Deploying · 10% of the exam

Task 8.3: Deploy Databricks resources using Declarative Automation Bundles (formerly Databricks Asset Bundles).

Targets, modes and presets, run identities, permissions, binding existing resources, the deployment state and what deploy and destroy change.

Study it

Sample questions

Try each one before opening the answer. Every option is explained, with the Databricks documentation page that proves it.

Question 1 · choose 1

A shared integration target of a bundle uses mode: development so that schedules stay paused. Two CI runners sometimes deploy it at the same moment, and the deployment state ends up inconsistent. The team wants to keep development mode. What should they change?

  1. ASet bundle.deployment.lock.enabled to true for the target
  2. BRun the deploys with --force
  3. CSet jobs_max_concurrent_runs to 1 in the target's presets
  4. DSwitch the target to mode: production
Show the answer and why
  • ASet bundle.deployment.lock.enabled to true for the target

    Correct

    Development mode turns off the deployment lock; enabling it again stops concurrent deployments from conflicting.

  • BRun the deploys with --force

    Incorrect

    --force overrides validations; it does not serialize deployments.

  • CSet jobs_max_concurrent_runs to 1 in the target's presets

    Incorrect

    This limits job runs, not bundle deployments.

  • DSwitch the target to mode: production

    Incorrect

    That gives up the development-mode behavior the team wants to keep.

Among other behaviors, development mode disables the deployment lock for faster iteration, because conflicts are unlikely for one developer. For a shared target with concurrent deployers, set bundle.deployment.lock.enabled to true.

Question 2 · choose 2

A team deploys a bundle's prod target with mode: production. Which TWO behaviors does production mode apply? (Choose TWO.)

  1. AIt validates that the deployed pipelines are not in development mode
  2. BIt rejects overriding the bundle's cluster definitions, such as with --compute-id
  3. CIt pauses all schedules and triggers of the deployed jobs
  4. DIt prefixes resource names with the deploying user's name
  5. EIt enables concurrent runs on every deployed job
Show the answer and why
  • AIt validates that the deployed pipelines are not in development mode

    Correct

    Production mode validates that related pipelines are marked development: false.

  • BIt rejects overriding the bundle's cluster definitions, such as with --compute-id

    Correct

    Unlike development mode, production mode does not allow overriding existing cluster definitions.

  • CIt pauses all schedules and triggers of the deployed jobs

    Incorrect

    Pausing schedules is a development mode behavior.

  • DIt prefixes resource names with the deploying user's name

    Incorrect

    The name prefix is applied in development mode.

  • EIt enables concurrent runs on every deployed job

    Incorrect

    Allowing concurrent runs for faster iteration is a development mode behavior.

Deployment modes apply groups of settings. Development mode prefixes names, pauses schedules and allows cluster overrides, while production mode validates pipeline settings and the Git branch and keeps the defined clusters.

Question 3 · choose 1

A bundle deploys ten jobs and two pipelines. The data_ops group must have CAN_VIEW on all of them. Where is this set most simply?

  1. AIn each resource's tags, as data_ops: CAN_VIEW
  2. BIn the bundle's variables, one per resource
  3. CIn a top-level permissions mapping of the bundle
  4. DIn the workspace mapping of the prod target
Show the answer and why
  • AIn each resource's tags, as data_ops: CAN_VIEW

    Incorrect

    Tags do not grant permissions.

  • BIn the bundle's variables, one per resource

    Incorrect

    Variables hold values; they do not set permissions by themselves.

  • CIn a top-level permissions mapping of the bundle

    Correct

    Top-level permissions apply to all resources defined in the bundle.

  • DIn the workspace mapping of the prod target

    Incorrect

    workspace sets paths and the host, not resource permissions.

The permissions mapping, at the top level or per target, applies the given levels for users, groups or service principals to the resources the bundle defines.

Question 4 · choose 1

A prod target with mode: production is deployed by a person rather than a service principal, and validation fails. What does production mode check in this case?

  1. AThat every job in the target has a schedule or trigger
  2. BThat the deploying user is a workspace admin in the prod workspace
  3. CThat all notebooks in the bundle are in IPYNB format
  4. DThat run_as and permissions are set and paths are not user paths
Show the answer and why
  • AThat every job in the target has a schedule or trigger

    Incorrect

    Schedules are not validated.

  • BThat the deploying user is a workspace admin in the prod workspace

    Incorrect

    The checks concern identities and paths, not the admin role.

  • CThat all notebooks in the bundle are in IPYNB format

    Incorrect

    Notebook format is not checked.

  • DThat run_as and permissions are set and paths are not user paths

    Correct

    Without service principals, production mode validates these mappings and paths.

Databricks recommends service principals for production deployments. If none are used, production mode validates that artifact, file, root and state paths are not set to a specific user and that run_as and permissions are specified.

Question 5 · choose 1

After deploying a bundle to the staging target, an engineer wants a list of the deployed jobs and pipelines with their workspace URLs. Which command shows this?

  1. Adatabricks bundle summary -t staging
  2. Bdatabricks bundle validate -t staging
  3. Cdatabricks bundle init
  4. Ddatabricks bundle destroy -t staging
Show the answer and why
  • Adatabricks bundle summary -t staging

    Correct

    bundle summary reviews everything deployed for the target.

  • Bdatabricks bundle validate -t staging

    Incorrect

    validate checks the configuration.

  • Cdatabricks bundle init

    Incorrect

    init creates a new bundle from a template.

  • Ddatabricks bundle destroy -t staging

    Incorrect

    destroy removes deployed resources.

After deployment, databricks bundle summary lists what the bundle deployed to a target.

Question 6 · choose 1

A bundle defines resources: jobs: nightly_etl with name 'Nightly ETL'. In dev mode it deploys as '[dev ada] Nightly ETL'. Which command runs it?

  1. Adatabricks bundle run -t dev "[dev ada] Nightly ETL"
  2. Bdatabricks bundle run -t dev nightly_etl
  3. Cdatabricks bundle run -t dev "Nightly ETL"
  4. Ddatabricks jobs run-now nightly_etl
Show the answer and why
  • Adatabricks bundle run -t dev "[dev ada] Nightly ETL"

    Incorrect

    The deployed display name is not the identifier.

  • Bdatabricks bundle run -t dev nightly_etl

    Correct

    bundle run takes the key of the resource in the bundle configuration.

  • Cdatabricks bundle run -t dev "Nightly ETL"

    Incorrect

    The name field is not the key that bundle run uses.

  • Ddatabricks jobs run-now nightly_etl

    Incorrect

    jobs run-now needs the numeric job ID.

Resources are identified in a bundle by their keys under resources. databricks bundle run <key> starts the deployed job or pipeline for the chosen target.

Practice domain 8 →Practice all domains →