如何从AWS SDK for Java克隆弹性Beanstalk环境?
我需要从AWS SDK for Java克隆一个弹性Beanstalk环境 我找到了解释如何创建环境的答案,但我找不到任何示例或说明如何克隆环境的文档 我为CreateEnvironmentRequest找到了一个克隆方法,但根据该方法,它克隆CreateEnvironmentRequest对象,而不是环境 已经为此打开了一个窗口,因为目前无法从sdk执行克隆操作。如果您感兴趣,您可能希望重新打开该票据并提供您的理由如何从AWS SDK for Java克隆弹性Beanstalk环境?,java,amazon-elastic-beanstalk,aws-sdk,Java,Amazon Elastic Beanstalk,Aws Sdk,我需要从AWS SDK for Java克隆一个弹性Beanstalk环境 我找到了解释如何创建环境的答案,但我找不到任何示例或说明如何克隆环境的文档 我为CreateEnvironmentRequest找到了一个克隆方法,但根据该方法,它克隆CreateEnvironmentRequest对象,而不是环境 已经为此打开了一个窗口,因为目前无法从sdk执行克隆操作。如果您感兴趣,您可能希望重新打开该票据并提供您的理由 另一种可能是从Java调用eb cli来运行环境克隆。好吧,您不能使用Java
另一种可能是从Java调用eb cli来运行环境克隆。好吧,您不能使用Java SDK for AWS精确克隆环境,我的方法是每次只创建一个新环境,您可以执行以下操作: 上传你的部署文件war,zip到S3 为部署创建一个版本,链接到以前上载的文件
private CreateApplicationVersionRequest createApplicationVersion() {
return new CreateApplicationVersionRequest()
.withApplicationName("The app name")
.withAutoCreateApplication(true)
.withSourceBundle(new S3Location("bucket_name", deployedArtifactId))
.withVersionLabel("a number for the version");
}
您可以去寻找最新版本的堆栈
private void getLatestStackSolutionVersion() {
ListAvailableSolutionStacksResult response = beanstalkClient.listAvailableSolutionStacks();
for (int i = 0; i < response.getSolutionStacks().size(); i++) {
if (response.getSolutionStacks().get(i).contains("Java 8") {
stackName = response.getSolutionStacks().get(i);
break;
}
}
}
瞧!这就像每次克隆一样,希望这对您有用。可能您应该先创建一个模板,然后从该模板创建所需的环境?
private Collection<ConfigurationOptionSetting> setEnvironmentProperties() {
Collection<ConfigurationOptionSetting> configurationOptionSettings = new HashSet<>();
configurationOptionSettings.add(new ConfigurationOptionSetting("aws:autoscaling:launchconfiguration", "InstanceType", "t2.medium"));
configurationOptionSettings.add(new ConfigurationOptionSetting("aws:ec2:vpc", "VPCId","thevpcid");
configurationOptionSettings.add(new ConfigurationOptionSetting("aws:ec2:vpc", "Subnets", "thesubnets");
configurationOptionSettings.add(new ConfigurationOptionSetting("aws:ec2:vpc", "ELBSubnets", "theelbsubnets");
configurationOptionSettings.add(new ConfigurationOptionSetting("aws:elasticbeanstalk:application:environment", "ANOTHER_PROPERTY", "a value"));
return configurationOptionSettings;
}
public void deployCreatingEnvironment() {
getLatestStackSolutionVersion();
beanstalkClient.createApplicationVersion(createApplicationVersion());
beanstalkClient.createEnvironment(setupNewEnvironment());
}