Scheduled deployment example#

Here is an example anaconda-project.yml file to demonstrate how to use a scheduled deployment task with scripts and notebooks:

name: Scheduled Job

packages:
  - python=3.7
  - notebook
channels:
  - defaults

platforms:
  - linux-64

env_specs:
  default: {}

Scripts#

You can run scripts in the correct conda environment by declaring a python executable that’s consistent with the packages specified in the anaconda-project.yml file—in this example, a Python 3.7 Notebook.

The following excerpt of an example anaconda-project.yml file uses an appropriate python executable.

commands:
  script_task:
    unix: python task.py

In this example, task.py runs the following code, which will print the time and date when the script runs.

from datetime import datetime
print(datetime.now())

Notebooks#

Notebook files cannot be executed using the notebook: command, as that command starts an interactive Jupyter session. Instead, you can specify a unix: command to execute a Jupyter notebook.

For example, create a simple notebook named task.ipynb, with a single cell:

To run the notebook, create another file in the project named run_nb.sh that contains the following:

jupyter nbconvert --ExecutePreprocessor.kernel_name='python3' --to markdown --stdout --execute $1

This run_nb.sh script runs the nbconvert tool against the notebook file, and ensures that:

  • The Python3 kernel is used

  • The output is converted to easy-to-ready Markdown

  • The output is directed to STDOUT rather than a file

Lastly, add the following to the anaconda-project.yml file for the task.ipynb notebook:

commands:
  notebook_task:
    unix: sh run_nb.sh task.ipynb

After you save and commit your project, you can create a schedule to run it.