我正在使用the API将应用程序部署到AWS Elastic Beanstalk:
https://elasticbeanstalk.us-east-1.amazon.com/?ApplicationName=SampleApp
&SourceBundle.S3Bucket=amazonaws.com
&SourceBundle.S3Key=sample.war
...
我的印象是Java部署使用.war
,.zip
是受支持的(docs),并且可以使用.git
(但只能与PHP一起使用或使用eb
?doc)。在
我可以使用API为Python应用程序从.git
创建应用程序版本吗?或者zip
s是唯一受支持的类型吗?在
(或者,我可以在不使用命令行工具的情况下将git推送到AWS吗?)在
有两种方法可以部署到AWS:
API后端,基本上是从S3引用的.zip文件。在部署时,实例将解包并运行一些自定义脚本(您可以从AMI重写这些脚本,或者通过自定义配置文件重写这些脚本,这是推荐的方法)。注意,为了在AWS弹性Beanstalk环境中创建和部署新版本,需要三个调用:upload to s3、createapplicationversion和UpdateEnvironment。
git端点,其工作方式如下:
.git/config
,以支持git aws.push
,尤其是git aws.remote
(未记录)git aws.push
只需获取密钥,构建一个自定义URL(gitaws遥控器),并执行git push-f主机<api>/<app>/<commitid>(/<envname>)
,它将创建s3.zip文件(根据提交内容),然后为<commitid>
创建{<envname>
存在,它还会发出一个UpdateEnvironment调用。您的AWS id被散列并嵌入到URL中,就像所有AWS调用一样,但是作为用户名/密码认证令牌发送。在(full reference docs)
几个月前,我已经将其作为一个Maven插件进行了移植,并且this file展示了如何用纯Java实现它。它实际上包含了很多代码(因为它实际上构建了一个自定义的git repo—使用jgit,计算散列并推送到其中)
我强烈地考虑将后端口作为一个ant任务,或者干脆在没有
pom.xml
文件的情况下使其工作,因此用户只使用maven来完成部署。在历史上,只有第一种方法得到支持,而第二种方法的重要性逐渐增加。由于第二种方法实际上要简单得多(在BeanstalkMaven插件中,您必须调用三种不同的方法,而一个简单的git推送就可以实现这三种方法),因此我们支持基于git的部署,甚至还为此发布了一个原型(您可以看到一个示例项目here,尤其是自述文件.md特别是)。在
(顺便说一句,如果您使用.war文件,我的elastic beanstalk plugin同时支持这两种方式,而且我们实际上支持git,因为它允许我们进行一些增量部署)
那么,你还想实施它吗?在
我建议你读三个文件:
FastDeployMojo.java是主立面
RequestSigner真的很神奇
This is a testcase for RequestSigner
想进去吗
相关问题 更多 >
编程相关推荐