使用 GitHub Actions 运行 Jupyter Notebook 脚本

碧海醫心
发布: 2025-09-17 15:52:01
原创
218人浏览过

使用 github actions 运行 jupyter notebook 脚本

本文旨在指导您如何使用 GitHub Actions 运行 Jupyter Notebook 脚本,并安全地管理脚本中的凭据。我们将探讨如何配置 GitHub Actions 的定时任务,如何从 GitHub 仓库运行 Jupyter Notebook 脚本,以及如何利用 GitHub Secrets 安全地存储和访问敏感信息,避免硬编码凭据带来的安全风险。通过本文,您将掌握一种可靠且安全的自动化 Jupyter Notebook 脚本执行方案。

GitHub Actions 是一种强大的自动化工具,可以用于构建、测试和部署代码。它也可以用来运行 Jupyter Notebook 脚本,这对于需要定期执行数据分析、报告生成等任务的场景非常有用。本文将详细介绍如何配置 GitHub Actions 来实现 Jupyter Notebook 脚本的定时运行,并重点讲解如何安全地管理脚本中涉及的敏感信息,例如 API 密钥、数据库密码等。

1. 设置 GitHub Actions 工作流

首先,需要在你的 GitHub 仓库中创建一个 .github/workflows 目录,并在该目录下创建一个 YAML 文件,例如 jupyter_notebook.yml。这个 YAML 文件定义了 GitHub Actions 的工作流。

以下是一个示例 jupyter_notebook.yml 文件:

name: Run Jupyter Notebook

on:
  schedule:
    - cron: '0 0 * * *'  # 每天凌晨 00:00 运行

jobs:
  run_notebook:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.9'  # 根据你的需求选择 Python 版本

      - name: Install dependencies
        run: |
          pip install papermill
          pip install -r requirements.txt # 如果有 requirements.txt 文件

      - name: Execute Jupyter Notebook
        run: |
          papermill your_notebook.ipynb output_notebook.ipynb
登录后复制

解释:

  • name: 工作流的名称,这里设置为 "Run Jupyter Notebook"。
  • on: 定义触发工作流的条件。这里使用 schedule 来设置定时任务,cron: '0 0 * * *' 表示每天凌晨 00:00 运行。
  • jobs: 定义工作流中包含的任务。这里只有一个任务 run_notebook。
  • runs-on: 指定运行任务的操作系统,这里使用 ubuntu-latest。
  • steps: 定义任务中包含的步骤。
    • actions/checkout@v3: 检出你的代码仓库。
    • actions/setup-python@v4: 设置 Python 环境。
    • pip install papermill: 安装 papermill,它是一个用于参数化和执行 Jupyter Notebook 的工具。
    • pip install -r requirements.txt: 安装项目依赖,如果你的项目有 requirements.txt 文件。
    • papermill your_notebook.ipynb output_notebook.ipynb: 使用 papermill 执行 Jupyter Notebook。your_notebook.ipynb 是你的 Jupyter Notebook 文件名,output_notebook.ipynb 是输出文件名。

注意事项:

  • cron 表达式的格式请参考 GitHub Actions 的官方文档。
  • 根据你的项目需求修改 Python 版本和依赖安装命令。
  • 确保你的 Jupyter Notebook 文件名正确。
  • 如果你的 Jupyter Notebook 中使用了特定的 kernel,需要在安装依赖的步骤中安装相应的 kernel。

2. 安全地管理凭据:使用 GitHub Secrets

为了安全地管理 Jupyter Notebook 脚本中使用的凭据,强烈建议使用 GitHub Secrets。 GitHub Secrets 允许你存储敏感信息,例如 API 密钥、数据库密码等,而无需将它们硬编码到你的代码中。

步骤:

  1. 在你的 GitHub 仓库中,进入 "Settings" -> "Security" -> "Secrets and variables" -> "Actions"。
  2. 点击 "New repository secret"。
  3. 输入 Secret 的名称(例如 API_KEY)和值(你的 API 密钥)。
  4. 点击 "Add secret"。

在 Jupyter Notebook 中访问 Secrets:

在你的 Jupyter Notebook 脚本中,可以使用 os.environ 来访问 GitHub Secrets。

GitHub Copilot
GitHub Copilot

GitHub AI编程工具,实时编程建议

GitHub Copilot 48
查看详情 GitHub Copilot
import os

api_key = os.environ.get("API_KEY")

if api_key:
    print("API Key:", api_key)
else:
    print("API Key not found in environment variables.")
登录后复制

在 GitHub Actions 工作流中使用 Secrets:

在你的 jupyter_notebook.yml 文件中,可以使用 ${{ secrets.SECRET_NAME }} 的形式来访问 Secrets。

例如,如果你想将 API 密钥传递给 papermill 命令,可以这样做:

      - name: Execute Jupyter Notebook
        run: |
          papermill your_notebook.ipynb output_notebook.ipynb -p API_KEY "${{ secrets.API_KEY }}"
登录后复制

然后在 Jupyter Notebook 脚本中,可以通过 papermill 传递的参数来访问 API 密钥。

import papermill as pm

api_key = pm.parameters.get("API_KEY")

if api_key:
    print("API Key:", api_key)
else:
    print("API Key not found in papermill parameters.")
登录后复制

注意事项:

  • 永远不要将 Secrets 硬编码到你的代码中。
  • 确保你的 Secrets 名称清晰明了,以便于理解和维护。
  • 定期审查你的 Secrets,确保它们仍然有效且安全。

3. 完整示例

下面是一个完整的示例,展示了如何使用 GitHub Actions 运行 Jupyter Notebook 脚本,并安全地管理 API 密钥。

jupyter_notebook.yml 文件:

name: Run Jupyter Notebook

on:
  schedule:
    - cron: '0 0 * * *'  # 每天凌晨 00:00 运行

jobs:
  run_notebook:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.9'

      - name: Install dependencies
        run: |
          pip install papermill
          pip install -r requirements.txt

      - name: Execute Jupyter Notebook
        run: |
          papermill your_notebook.ipynb output_notebook.ipynb -p API_KEY "${{ secrets.API_KEY }}"
登录后复制

your_notebook.ipynb 文件:

import papermill as pm
import os

# 从 papermill 参数中获取 API 密钥
api_key = pm.parameters.get("API_KEY")

# 如果 papermill 参数中没有 API 密钥,则尝试从环境变量中获取
if not api_key:
    api_key = os.environ.get("API_KEY")

if api_key:
    print("API Key:", api_key)
else:
    print("API Key not found in papermill parameters or environment variables.")

# 在这里使用你的 API 密钥进行操作
# 例如,调用 API 接口
# ...
登录后复制

总结

通过本文,你学习了如何使用 GitHub Actions 运行 Jupyter Notebook 脚本,并安全地管理脚本中使用的凭据。 这种方法可以帮助你自动化数据分析、报告生成等任务,并确保你的敏感信息得到保护。记住,安全性至关重要,永远不要将 Secrets 硬编码到你的代码中。使用 GitHub Secrets 是一种安全且可靠的管理凭据的方式。

以上就是使用 GitHub Actions 运行 Jupyter Notebook 脚本的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号