【发布时间】:2017-11-25 22:47:12
【问题描述】:
我正在尝试使用AWS JAVA API 创建一个新的EC2 instance。但是我收到以下异常消息
线程“main”中的异常 com.amazonaws.services.ec2.model.AmazonEC2Exception:标签规范 资源类型必须有一个值(服务:AmazonEC2;状态代码:400; 错误代码:无效参数值;请求 ID:XXXXXX)
public static void main(String[] args) {
Ec2Utilities utils = new Ec2Utilities();
Map<String, String> tagMap = new HashMap<String, String>();
tagMap.put("name", "newinstance");
tagMap.put("category", "cat1");
utils.createInstanceFromAmi("t2.micro", "ami-sdfsds", 1, "sg-sdfsd", "nammme", tagMap);
}
public void createInstanceFromAmi(String instanceType, String amiId, int count, String securityGroup,
String keyName, Map<String, String> tagMap) {
AmazonEC2 ec2Client = Auth.getCredentails();
TagSpecification tagSpecs = new TagSpecification();
tagSpecs.setTags(buildTags(tagMap));
RunInstancesRequest runInstancesRequest = new RunInstancesRequest().withTagSpecifications(tagSpecs)
.withInstanceType(instanceType)
.withImageId(amiId)
.withMinCount(count)
.withMaxCount(2)
.withSecurityGroupIds(securityGroup)
.withKeyName(keyName);
RunInstancesResult runInstances = ec2Client.runInstances(runInstancesRequest);
}
private List<Tag> buildTags(Map<String, String> tagMap) {
List<Tag> tagList = new ArrayList<Tag>();
tagMap.forEach((k, v) -> {
tagList.add(new Tag(k, v));
});
System.out.println(tagList);
return tagList;
}
【问题讨论】:
标签: amazon-web-services amazon-ec2