我需要在 aws lambda 中克隆一个私有 git 存储库(lambda 运行时是 python)。经过一些研究后,我知道我需要在/tmp目录中克隆存储库,因为它是 lambda 中唯一可访问的目录。另外,我需要使用私钥来ssh到github。
基本上,我的代码如下所示:
import git # lambda-git
import os
private_key = """-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
"""
with open("/tmp/id_rsa", "w") as id_rsa:
id_rsa.write(private_key)
os.chmod("/tmp/id_rsa", 600)
os.environ["GIT_SSH_COMMAND"] = 'ssh -i /tmp/id_rsa -o StrictHostKeyChecking=no'
git.exec_command("clone", "git@domain:repo_name.git", "/tmp")
Run Code Online (Sandbox Code Playgroud)
但是,将压缩文件夹上传到 lambda 后,出现以下错误
Could not create directory \\'/home/sbx_user1051/.ssh\\'.
Failed to add the host to the list of known hosts (/home/sbx_user1051/.ssh/known_hosts).
Load key \"/tmp/id_rsa\": Permission denied
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我缺少什么?或者甚至可以在 aws lambda 中克隆私有存储库吗?任何帮助表示赞赏。
附言。我知道我可以使用 git 令牌并通过 https 克隆存储库。但我无法修改存储库网址,必须按git@domain:repo_name.git原样使用。
我终于找到了答案。更改权限代码600解决0o600了这个问题!
| 归档时间: |
|
| 查看次数: |
10550 次 |
| 最近记录: |