如何解决有没有办法在AWS Lambda上使用PyGithub
我是PyGithub的忠实粉丝。我想在AWS Lambda上使用此库。但不幸的是,我无法编译和使用PyGithub的源文件。
我尝试从pypi下载它,然后将其压缩为zip->上传。
#change the fonts permission (inside public directory),use sudo if you have to
chmod -R www-data:www-data fonts/
chmod -R 775 fonts
但是它抛出一个错误。
## app.py file
from github import Github
# using username and password
g = Github("username","password")
def handler(event,context):
for repo in g.get_user().get_repos():
print(repo.name)
repo.edit(has_wiki=False)
有什么办法可以在Lambda上使用该库吗?
解决方法
是的。一种方法是通过lambda layers。
要验证这种可能性,我刚刚使用pygithub
创建了一个自定义图层,并可以确认它有效。
所使用的技术包括最近的 AWS博客中所述的 docker工具:
我创建了如下图层:
-
创建空文件夹,例如
mylayer
。 -
转到该文件夹并创建内容为{p>的
requirements.txt
文件
PyGithub
- 运行以下docker命令(适用于python 3.8的lambda):
docker run -v "$PWD":/var/task "lambci/lambda:build-python3.8" /bin/sh -c "pip install -r requirements.txt -t python/lib/python3.8/site-packages/; exit"
- 以zip格式创建图层:
zip -r mypygithublayer.zip python > /dev/null
-
在AWS控制台中基于
mypygithublayer.zip
创建lambda层。不要忘记为Compatible runtimes
指定python3.8
。 -
使用以下lambda函数测试lambda中的图层:
import json
from github import Github
def lambda_handler(event,context):
print(dir(Github))
该函数正确执行:
['FIX_REPO_GET_GIT_REF','_Github__get_FIX_REPO_GET_GIT_REF','_Github__get_per_page','_Github__set_FIX_REPO_GET_GIT_REF','_Github__set_per_page','__class__','__delattr__','__dict__','__dir__','__doc__','__eq__','__format__','__ge__','__getattribute__','__gt__','__hash__','__init__','__init_subclass__','__le__','__lt__','__module__','__ne__','__new__','__reduce__','__reduce_ex__','__repr__','__setattr__','__sizeof__','__str__','__subclasshook__','__weakref__','create_from_raw_data','dump','get_emojis','get_events','get_gist','get_gists','get_gitignore_template','get_gitignore_templates','get_hook','get_hooks','get_installation','get_license','get_licenses','get_oauth_application','get_organization','get_organizations','get_project','get_project_column','get_rate_limit','get_repo','get_repos','get_user','get_users','load','oauth_scopes','per_page','rate_limiting','rate_limiting_resettime','render_markdown','search_code','search_commits','search_issues','search_repositories','search_topics','search_users']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。