Как получить стоимость любого экземпляра EC2 с помощью java-sdk

Я хочу получить сведения об использовании и стоимости моих инстансов EC2 с помощью Cost Explorer API.

Я могу успешно получить данные об использовании и стоимости, но эта стоимость и использование включают объем использования, выполненный экземпляром EC2 и томами EBS, поэтому я хотел разделить стоимость с помощью usage_type_group, например EC2 :Running Hours, но всякий раз, когда я передаю это, я не получаю любое значение. Если я уберу это, я получу значение с общим использованием и стоимостью.

DimensionValues dimensions = new DimensionValues();
        dimensions.setKey("USAGE_TYPE_GROUP");
        Collection<String> values = new ArrayList<>();
        values.add("EC2 : Running Hours");
        dimensions.setValues(values);
        filter.setDimensions(dimensions);
        GetCostAndUsageRequest getCostAndUsageRequest = new GetCostAndUsageRequest().withGroupBy(groupBy)

                .withTimePeriod(dateInterval).withGranularity(Granularity.MONTHLY)
                .withFilter(filter)
                .withMetrics("UsageQuantity")
                .withMetrics("BlendedCost");

        try {
            costInformation = costExplorer.getCostAndUsage(getCostAndUsageRequest);
        } catch (AWSCostExplorerException ex) {
            logger.error("cost fetch details failed from cost explorer " + ex.getErrorMessage());
        }

person Vatsal Rahul    schedule 27.10.2019    source источник
comment
Я думаю, что это должно быть USAGE_TYPE и проверить значения, правильное ли это значение. Я нашел это здесь. Попробуйте туда заглянуть. docs.aws.amazon.com/aws-cost- управление/последняя/APIReference/   -  person Althaf1467    schedule 28.10.2019
comment
Я попробую, хотя USAGE_TYPE и USAGE_TYPE_GROUP имеют разные значения, но все же я могу попробовать   -  person Vatsal Rahul    schedule 28.10.2019


Ответы (1)


Попробуйте это. Я сделал это и получил платежную информацию EC2.

void test_costDetails() {
        Expression expression = new Expression();
        DimensionValues dimensions = new DimensionValues();
        dimensions.withKey(Dimension.SERVICE);
        dimensions.withValues("EC2 - Other");

        expression.withDimensions(dimensions);
        GetCostAndUsageResult result = costExplorer.getCostAndUsage(new GetCostAndUsageRequest().withTimePeriod(
                new DateInterval().withStart("2019-10-01").withEnd("2019-10-29")).withGranularity("DAILY").withMetrics(
                        "BlendedCost").withFilter(expression));

        result.getResultsByTime().forEach(r -> {
            System.out.println(r);
        });
    }
person Althaf1467    schedule 29.10.2019