使用EC2创建新的EC2实例时创建标记时出错Java API

使用EC2创建新的EC2实例时创建标记时出错Java API

问题描述:

我正在尝试使用AWS JAVA API创建新的EC2 instance。但是我得到消息,但以下情况除外使用EC2创建新的EC2实例时创建标记时出错Java API

异常线程“main” com.amazonaws.services.ec2.model.AmazonEC2Exception:标签规范 资源类型必须有一个值(服务:AmazonEC2;状态代码: 400; 错误代码:InvalidParameterValue;请求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; 
} 

我固定它自己。我加入这个

List<TagSpecification> tagSpecifications = new ArrayList<>(); 
    tagSpecifications.add(new TagSpecification().withTags(buildTags(tagMap)) 

buildTags(tagMap)返回`榜”