我正在尝试使用aws node.js sdk来在OPSWorks中创建应用程序。
我的存储库位于bitbucket,它是私有的。
我想使用AWS api和我的帐户密码而不是SSH。
这是代码:
var appParams = {
Name: 'Demo app',
StackId: userData.Stacks.stackId,
Type: 'nodejs',
AppSource: {
Password: '*******',
Type: 'git',
Url: 'https://myUserName@bitbucket.org/myUserName/demofresh.git',
Username: 'myUserName'
}
}
opsworks.createApp(appParams, function(err, data) {
if (err)
callback(err);
else{
console.log(data);
callback(data);
}
});
由于某种原因,我在使用此应用程序运行实例时始终收到此错误。
错误:
---- Begin output of git ls-remote https://myUserName@bitbucket.org/myUserName/demofresh.git HEAD ----
STDOUT:
STDERR: fatal: could not read Password for 'https://myUserName@bitbucket.org': No such device or address
---- End output of git ls-remote https://myUserName@bitbucket.org/myUserName/demofresh.git HEAD ----
Ran git ls-remote https://myUserName@bitbucket.org/myUserName/demofresh.git HEAD returned 128
我还尝试将网址更改为:
Url: 'https://myUserName@bitbucket.org/myUserName/demofresh.git',
但是我得到一个错误,它没有用户名字段。
有些人如何阅读我提供的密码。
我已成功使用DescribeApps,以确保密码和用户名保存在亚马逊服务器的应用程序中。
那么AWS API中可能存在问题吗?
答案 0 :(得分:1)
我刚刚遇到了同样的问题并且相信我在AWS OpsWorks上通过RTFM找到了解决方案: http://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html
在该文档中,它讨论了设置私有仓库,并指定不同的仓库连接字符串:
私有存储库 - 使用这些中显示的SSH读/写格式 示例:
- Github存储库:git@github.com:project / repository。
- Git服务器上的存储库:user @ server:project / repository
所以,我进入了bitbucket,复制了我的SSH连接字符串并将其设置为:
git@bitbucket.org:repo_owner/project.git
此外,该文档还指出了git repos的两个附加设置:
在“源代码管理”下选择Git会显示另外两个可选项 设置:
存储库SSH密钥
您必须指定部署SSH密钥才能访问私有 Git存储库。对于Git子模块,指定的密钥必须具有 访问这些子模块。有关更多信息,请参阅使用存储库 SSH密钥。
重要
部署SSH密钥不需要密码; AWS OpsWorks 无法通过它。分支/修订如果存储库有 多个分支,AWS OpsWorks下载主分支 默认。要指定特定分支,请输入分支名称SHA1 哈希或标签名称。要指定特定提交,请输入完整 40-hexdigit commit id。