rei*_*rdt 4 python amazon-web-services gitlab serverless-framework serverless
AWS 新手在这里
我必须通过 gitlab CI 作为 lambda 托管我的 python 脚本,并通过 AWS 上的 cloudwatch 触发它。
我正在学习以下教程:
在第一个教程中,我只获取该.gitlab-ci.yml文件并将其添加到第二个教程中显示的教程中(但我选择 3.7 作为运行时而不是 python 3.6)
我有以下serverless.yml文件
service: numpy-test
provider:
name: aws
runtime: python3.7
functions:
numpy:
handler: handler.main
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: non-linux
package:
exclude:
- venv/**
Run Code Online (Sandbox Code Playgroud)
和以下.gitlab-ci.yml文件:
service: numpy-test
provider:
name: aws
runtime: python3.7
functions:
numpy:
handler: handler.main
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: non-linux
package:
exclude:
- venv/**
Run Code Online (Sandbox Code Playgroud)
当我推送.gitlab-ci.yml文件时,它运行没有任何错误。
我可以看到在我的 AWS lambda 中创建的 lambda 函数。当我将此 lambda 与 Cloudwatch 连接以便每 1 分钟触发一次 lambda 时,我在日志中收到以下错误:
我也有一个requirements.txt文件,它有
numpy==1.18.2
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题并向我解释我正在做的错误以及如何纠正吗?
编辑 1
我编辑了serverless.ymlmakozaki 指出的文件,现在当我将它推送到 repo 中时,CI 文件失败并出现以下错误:
原因之一可能是您在 . gitlab-ci.yml文件。但是你想用一些模块部署 python lambda。尝试使用具有配置 python 和节点的图像,如下图:
nikolaik/python-nodejs
或者如果你想要一些特定的版本,那么你也可以这样做:
nikolaik/python-nodejs:python3.7-nodejs13
Run Code Online (Sandbox Code Playgroud)
出现错误后,我尝试在我的帐户中复制它。所以,现在我在这里对 serverless.yml 以及 .gitlab-ci.yml 文件进行了一些更改。
这是测试结果:
Null 存在是因为函数没有返回任何值但它打印了数组。
希望经过这些更改后,您将能够使其正常工作。
| 归档时间: |
|
| 查看次数: |
677 次 |
| 最近记录: |