首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将生成的文件从GitHub操作工作流复制到云函数?

如何将生成的文件从GitHub操作工作流复制到云函数?
EN

Stack Overflow用户
提问于 2022-09-06 18:17:50
回答 1查看 80关注 0票数 0

我使用一个GitHub操作来部署到Google函数。我的工作流程中的步骤包括:

代码语言:javascript
复制
steps:
    - name: "Checkout repository"
      uses: actions/checkout@v3

    # Setup Python so we can install Pipenv and generate requirements.txt.
    - name: "Setup Python"
      uses: actions/setup-python@v4
      with:
        python-version: '3.10' 

    - name: "Install Pipenv"
      run: |
          pipenv requirements > requirements.txt
          ls -la
          cat requirements.txt

    - name: "Generate requirements.txt"
      run: pipenv requirements > requirements.txt

    - id: "auth"
      name: "Authenticate to Google Cloud"
      uses: "google-github-actions/auth@v0"
      with:
        workload_identity_provider: "..."
        service_account: "..."

    - id: "deploy"
      uses: "google-github-actions/deploy-cloud-functions@v0"
      with:
        name: "my-function"
        runtime: "python310"

一旦生成了requirements.txt文件,我希望它与我的应用程序代码一起部署(在上面的步骤中签出)。requirements.txt文件是在构建过程中生成的,但从未被部署过。(通过查看云函数中的源代码来确认)。

如何确保此文件与应用程序代码一起部署?

更新1:

下面是生成requirements.txt后列出目录内容后的输出:

代码语言:javascript
复制
total 56
drwxr-xr-x 6 runner docker 4096 Sep  6 20:38 .
drwxr-xr-x 3 runner docker 4096 Sep  6 20:38 ..
-rw-r--r-- 1 runner docker  977 Sep  6 20:38 .env.example
-rw-r--r-- 1 runner docker  749 Sep  6 20:38 .gcloudignore
drwxr-xr-x 8 runner docker 4096 Sep  6 20:38 .git
drwxr-xr-x 3 runner docker 4096 Sep  6 20:38 .github
-rw-r--r-- 1 runner docker  120 Sep  6 20:38 .gitignore
-rw-r--r-- 1 runner docker  139 Sep  6 20:38 Pipfile
-rw-r--r-- 1 runner docker  454 Sep  6 20:38 Pipfile.lock
-rw-r--r-- 1 runner docker 1276 Sep  6 20:38 README.md
drwxr-xr-x 5 runner docker 4096 Sep  6 20:38 app
drwxr-xr-x 2 runner docker 4096 Sep  6 20:38 data
-rw-r--r-- 1 runner docker 2169 Sep  6 20:38 main.py
-rw-r--r-- 1 runner docker   27 Sep  6 20:38 requirements.txt

更新2:显示requirements.txt的内容显示它只包含:

代码语言:javascript
复制
-i https://pypi.org/simple

不包括依赖项。这可能是问题所在,但我还不确定原因。

更新3:工作流部署阶段显示的错误是:

代码语言:javascript
复制
ModuleNotFoundError: No module named 'aiohttp'

这是因为在运行函数之前没有要安装的requirements.txt文件。aiohttp恰好是我的源代码中列出的第一个依赖项。

EN

回答 1

Stack Overflow用户

发布于 2022-09-09 22:10:35

正如@ianyoung所解释的,问题在于pip文件。requirements.txt是空的,需求文件是项目所有依赖项的列表。这包括依赖项所需的依赖项。它还包含每个依赖项的特定版本,使用双等号(==)指定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73626276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档