
本文旨在指导您如何使用 GitHub Actions 运行 Jupyter Notebook 脚本,并安全地管理脚本中的凭据。我们将探讨如何配置 GitHub Actions 的定时任务,如何从 GitHub 仓库运行 Jupyter Notebook 脚本,以及如何利用 GitHub Secrets 安全地存储和访问敏感信息,避免硬编码凭据带来的安全风险。通过本文,您将掌握一种可靠且安全的自动化 Jupyter Notebook 脚本执行方案。
GitHub Actions 是一种强大的自动化工具,可以用于构建、测试和部署代码。它也可以用来运行 Jupyter Notebook 脚本,这对于需要定期执行数据分析、报告生成等任务的场景非常有用。本文将详细介绍如何配置 GitHub Actions 来实现 Jupyter Notebook 脚本的定时运行,并重点讲解如何安全地管理脚本中涉及的敏感信息,例如 API 密钥、数据库密码等。
首先,需要在你的 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解释:
注意事项:
为了安全地管理 Jupyter Notebook 脚本中使用的凭据,强烈建议使用 GitHub Secrets。 GitHub Secrets 允许你存储敏感信息,例如 API 密钥、数据库密码等,而无需将它们硬编码到你的代码中。
步骤:
在 Jupyter Notebook 中访问 Secrets:
在你的 Jupyter Notebook 脚本中,可以使用 os.environ 来访问 GitHub Secrets。
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.")注意事项:
下面是一个完整的示例,展示了如何使用 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中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号