Mr *_*r A 5 git amazon-web-services git-submodules aws-amplify
我正在使用 AWS Amplify 部署我的应用程序。我决定将我的应用程序的一部分分成一个子模块。现在,当我git submodule update --init --recursive在 Amplify 的构建中构建运行时,它给了我一个访问错误,因为它是一个私有存储库并且 AWS 无法访问它。
我有两种选择,一种是使用https来获取 repo,但它需要我将我的用户名和密码放在子模块中。或者想办法让 AWS 生成一个 SSH 密钥,我可以将它与子模块 SSH 访问配对以继续。我想使用后者,但我不知道如何在 AWS Amplify 中使用。
似乎一种解决方案是生成没有密码的 SSH 密钥(不安全的解决方案),然后将其添加为 aws-amplify 项目中的环境变量:
ssh-keygen -f deploy_key -N ""cat deploy_key | base64 -w0到 Amplify 项目环境变量中。例如。DEPLOY_KEYcat deploy_key.pub到 ~/.ssh/authorized_keys(取决于您的存储库提供商,在本例中为 Bitbucket 的存储库设置中的访问密钥)commands:
- eval $(ssh-agent -s)
- ssh-add <(echo "$DEPLOY_KEY" | base64 --decode)
Run Code Online (Sandbox Code Playgroud)
小智 2
也与 AWS 讨论了这个问题,目前还没有第二个选项的解决方案。
您可以创建一个单独的 GitHub 用户,对子模块存储库具有只读访问权限,并通过 HTTPS 添加它:https://USERNAME:PASSWORD@github.com/ACCOUNT/SUBMOUDLE-REPO.git
奖励:如果您想将更改推送到子模块存储库,您可以更改原始推送 URL。在子模块目录中:git config remote.origin.pushurl git@github.com:ACCOUNT/SUBMODULE-REPO.git
FWIW,Netlify 几个月前也遇到了同样的问题(不确定是否仍然如此),他们的解决方法是手动为子模块存储库生成部署密钥,但由于 GitHub 的限制,该密钥只能工作一次 - 意味着对于需要使用子模块的任何其他存储库/站点,您将需要再次完成该过程。
| 归档时间: |
|
| 查看次数: |
1641 次 |
| 最近记录: |