public String getInstanceId()

in TerraformCustomResourceHandler/src/main/java/com/amazon/servicecatalog/terraform/customresource/facades/Ec2Facade.java [41:66]


    public String getInstanceId(Tag instanceTag) {
        Filter tagFilter = new Filter("tag:" + instanceTag.getKey(), ImmutableList.of(instanceTag.getValue()));
        DescribeInstancesRequest request = new DescribeInstancesRequest().withFilters(tagFilter, RUNNING_INSTANCE_FILTER);
        DescribeInstancesResult result = ec2.describeInstances(request);

        List<String> instanceIds;
        if (result.getReservations() != null) {
            instanceIds = result.getReservations().stream()
                    .flatMap(reservation -> reservation.getInstances().stream())
                    .map(Instance::getInstanceId)
                    .collect(ImmutableList.toImmutableList());
        } else {
            instanceIds = ImmutableList.of();
        }

        if (instanceIds.isEmpty()) {
            String message = String.format(
                    "Invalid FulfillmentConfig. No instances found with TagKey: %s and TagValue: %s",
                    instanceTag.getKey(),
                    instanceTag.getValue());
            throw new RuntimeException(message);
        }

        int randomIndex = randomGenerator.nextInt(instanceIds.size());
        return instanceIds.get(randomIndex);
    }