当前位置:

首页 > 编程开发 > GitHub Actions 自动运行 Jupyter 脚本

GitHub Actions 自动运行 Jupyter 脚本

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

本文目录

    使用 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。

    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 是一种安全且可靠的管理凭据的方式。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    Visual Studio2019更改解决方案名称与项目命名方法
    Visual Studio2019更改解决方案名称与项目命名方法

    在 Visual Studio 2019 中正确更改解决方案和项目名称的方法指南。包括如何区分解决方案名、项目名与命名空间,使用快捷键 Ctrl+Alt+L 打开资源管理器进行重命名,以及后续对 .sln 文件、.csproj 文件和代码 namespace 的同步调整与验证步骤。

    VisualStudio2026企业版离线安装包创建详细步骤
    VisualStudio2026企业版离线安装包创建详细步骤

    通过 Microsoft 官方文档确认的 vs_enterprise.exe 引导程序,逐步指导用户创建包含特定工作负载的离线布局,实现跨设备的高效部署与更新。

    VisualStudio2019命令行参数自定义安装工作负载
    VisualStudio2019命令行参数自定义安装工作负载

    详解 Visual Studio 2019 命令行安装方法,包括使用 --add 指定工作负载 ID、--includeRecommended 包含推荐组件,以及区分新装与修改实例的正确命令入口,适用于自动化部署场景。

    如何在Visual Studio2022导入已有代码文件夹创建项目
    如何在Visual Studio2022导入已有代码文件夹创建项目

    详解 Visual Studio 2022 如何从现有代码文件夹创建 C++、C# 或 VB 项目,对比打开文件夹与加载 .sln 文件的区别,避免重复构建结构,确保项目配置正确。

    Visual Studio2019导出导入IDE布局窗口配置文件
    Visual Studio2019导出导入IDE布局窗口配置文件

    详细步骤指南:在 VS2019 中调整并保存工具窗口布局,使用导入导出向导选择 Window Layouts 类别生成 .vssettings 文件,并在另一台机器或实例中恢复布局,同时处理多显示器适配问题。

    VisualStudio2022社区版如何从官网下载安装包
    VisualStudio2022社区版如何从官网下载安装包

    详细讲解 Visual Studio 2022 社区版的官方下载入口、引导程序获取、工作负载配置及安装启动步骤,确保用户正确安装开发环境。

    Visual Studio2017调试附加到进程,附加运行中程序
    Visual Studio2017调试附加到进程,附加运行中程序

    学习在 Visual Studio 2017 中通过“附加到进程”功能调试正在运行的应用程序。了解如何正确选择进程实例、配置调试类型,并解决因符号文件或源码不匹配导致的断点失效问题。

    Visual Studio2019禁用IDE后台自动代码扫描提升速度
    Visual Studio2019禁用IDE后台自动代码扫描提升速度

    针对 Visual Studio 2019 编辑大型项目时的卡顿问题,提供分语言关闭后台代码分析的具体步骤,包括 C#/VB 的分析范围设置、C++ 的后台分析禁用选项以及 .NET Framework 的项目文件配置方法。

    Visual Studio2017解决方案资源管理器窗口不见了找回办法
    Visual Studio2017解决方案资源管理器窗口不见了找回办法

    Visual Studio 2017 解决方案资源管理器不见了怎么办?通过快捷键 Ctrl+Alt+L、视图菜单或重置窗口布局即可快速恢复。本文详解各种场景下的找回技巧及注意事项。

    Visual Studio2022代码注释插件管理与卸载方法
    Visual Studio2022代码注释插件管理与卸载方法

    详细指南:如何在 Visual Studio 2022 中安全卸载代码注释扩展。涵盖打开扩展管理器、区分禁用与卸载、处理待处理更改及确认卸载结果的操作步骤。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。