2017-11-25 30 views
0

AWS JAVA APIを使用して新しいEC2 instanceを作成しようとしています。しかし、私はメッセージで、次の例外を取得EC2 Java APIを使用して新しいEC2インスタンスを作成中にタグを作成する際のエラー

スレッドの例外「メイン」 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; 
} 

答えて

0

私はそれを自分自身を修正しました。私はbuildTags(tagMap)は `一覧」

を返します。この

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

を追加しました

関連する問題