首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过GitHub操作和无服务器框架部署AWS时无法找到良好的绑定路径格式

通过GitHub操作和无服务器框架部署AWS时无法找到良好的绑定路径格式
EN

Stack Overflow用户
提问于 2021-02-04 23:02:10
回答 1查看 259关注 0票数 0

尝试使用无服务器框架部署AWS Lambda,在Windows 2019上运行Github操作,但部署失败

无法找到良好的绑定路径格式

这就是我的动作模板的样子:

代码语言:javascript
复制
name: deploy-aws-lambda
on:
  push:
    branches:
      - master
jobs:
  deploy:
    runs-on: windows-latest
    strategy:
      matrix:
        node-version: [14.x]
    steps:
      - uses: actions/checkout@master
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - name: Install Dependencies
        run: npm install
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: eu-west-1
      - name: Serverless Deploy
        run: npm run-script deploy

脚本部署运行serverless deploy

我的serverless.yml

代码语言:javascript
复制
service: test

provider:
  name: aws
  runtime: python3.8
  region: eu-west-1
  memorySize: 256
  timeout: 15

functions:
  main:
    handler: handler.main
    events:
      - http:
          path: /
          method: get
      
plugins:
  - serverless-python-requirements

custom:
  pythonRequirements:
    dockerizePip: non-linux

package:
  exclude:
    - node_modules/**
    - .vscode/**
    - .github/**

我的package.json

代码语言:javascript
复制
{
  "name": "test",
  "version": "1.0.0",
  "description": "This is test",
  "dependencies": {},
  "devDependencies": {
    "serverless": "^2.33.1",
    "serverless-python-requirements": "^5.1.1"
  },
  "scripts": {
    "deploy": "serverless deploy"
  },
  "author": "",
  "license": "ISC"
}

样本λ函数handler.py

代码语言:javascript
复制
import json


def main(event, context):
    body = {
        "message": "Go Serverless v1.0! Your function executed successfully!",
        "input": event
    }

    response = {
        "statusCode": 200,
        "body": json.dumps(body)
    }

    return response
}

样本requirements.txt

代码语言:javascript
复制
requests
numpy

调用部署后的日志和跟踪:

代码语言:javascript
复制
Serverless: Generated requirements from D:\a\telegram-bot\telegram-bot\requirements.txt in D:\a\telegram-bot\telegram-bot\.serverless\requirements.txt...
Serverless: Installing requirements from C:\Users\runneradmin\AppData\Local\UnitedIncome\serverless-python-requirements\Cache\5e61405b67ffec41db1bbd78f432bc4fd4ccdf0af1764200fd7a3859b7126a39_slspyc\requirements.txt ...
Serverless: Docker Image: lambci/lambda:build-python3.8
 
  Error --------------------------------------------------
 
  Error: Unable to find good bind path format
      at getBindPath (D:\a\telegram-bot\telegram-bot\node_modules\serverless-python-requirements\lib\docker.js:152:9)
      at installRequirements (D:\a\telegram-bot\telegram-bot\node_modules\serverless-python-requirements\lib\pip.js:198:39)
      at installRequirementsIfNeeded (D:\a\telegram-bot\telegram-bot\node_modules\serverless-python-requirements\lib\pip.js:556:3)
      at ServerlessPythonRequirements.installAllRequirements (D:\a\telegram-bot\telegram-bot\node_modules\serverless-python-requirements\lib\pip.js:635:29)
      at ServerlessPythonRequirements.tryCatcher (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\util.js:16:23)
      at Promise._settlePromiseFromHandler (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\promise.js:547:31)
      at Promise._settlePromise (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\promise.js:604:18)
      at Promise._settlePromise0 (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\promise.js:649:10)
      at Promise._settlePromises (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\promise.js:729:18)
      at _drainQueueStep (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\async.js:93:12)
      at _drainQueue (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\async.js:86:9)
      at Async._drainQueues (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\async.js:102:5)
      at Immediate.Async.drainQueues [as _onImmediate] (D:\a\telegram-bot\telegram-bot\node_modules\bluebird\js\release\async.js:15:14)
      at processImmediate (internal/timers.js:461:21)

在本地,这个部署过程在我的Windows 10机器上工作得很好,尽管我使用的是Desktop,所讨论的机器是Windows 2019。对这个问题有什么解决办法或解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-19 16:57:55

在D:\a\telegram-bot\telegram-bot\node_modules\serverless-python-requirements\lib\docker.js:152:9中的getBindPath函数末尾添加“返回servicePath;”行

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

https://stackoverflow.com/questions/66055156

复制
相关文章

相似问题

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