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:

../../_images/sample_notebook.png

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.