Выполнить команду AWS в eclipse

Я выполняю команду EC2 через eclipse, например:

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    String spot = "aws ec2 describe-spot-price-history --instance-types"
            + " m3.medium  --product-description \"Linux/UNIX (Amazon VPC)\"";
    System.out.println(spot);
    Runtime runtime = Runtime.getRuntime();
    final Process process = runtime.exec(spot);

    //********************
            InputStreamReader isr = new InputStreamReader(process.getInputStream());
            BufferedReader buff = new BufferedReader (isr);

            String line;
            while((line = buff.readLine()) != null)
                System.out.print(line);

}

Результат в консоли eclipse:

aws ec2 describe-spot-price-history --instance-types m3.medium  --product-description "Linux/UNIX (Amazon VPC)"
{    "SpotPriceHistory": []}

Однако, когда я выполняю ту же команду (aws ec2 describe-spot-price-history --instance-types m3.medium --product-description "Linux/UNIX (Amazon VPC)") в оболочке, я получаю другой результат.

"Timestamp": "2018-09-07T17:52:48.000Z", 
        "AvailabilityZone": "us-east-1f", 
        "InstanceType": "m3.medium", 
        "ProductDescription": "Linux/UNIX", 
        "SpotPrice": "0.046700"
    }, 
    {
        "Timestamp": "2018-09-07T17:52:48.000Z", 
        "AvailabilityZone": "us-east-1a", 
        "InstanceType": "m3.medium", 
        "ProductDescription": "Linux/UNIX", 
        "SpotPrice": "0.047000"
    }

Мой вопрос: как получить в консоли eclipse тот же результат, что и в консоли оболочки?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы не получаете ожидаемого результата, потому что вы передаете консольную команду через свой Java-код, который не анализируется должным образом, и вместо этого вы не используете AWS SDK для Java. Чтобы получить ожидаемый результат в консоли Eclipse, вы можете использовать вызов DescribeSpotPriceHistory Java SDK API в своем коде [1]. Пример фрагмента кода для этого вызова API согласно документации выглядит следующим образом:

AmazonEC2 client = AmazonEC2ClientBuilder.standard().build();
DescribeSpotPriceHistoryRequest request = new DescribeSpotPriceHistoryRequest().withEndTime(new Date("2014-01-06T08:09:10"))
        .withInstanceTypes("m1.xlarge").withProductDescriptions("Linux/UNIX (Amazon VPC)").withStartTime(new Date("2014-01-06T07:08:09"));
DescribeSpotPriceHistoryResult response = client.describeSpotPriceHistory(request);

Кроме того, вы можете заглянуть на этот веб-сайт, содержащий примеры файлов Java для различных сценариев, использующих вызов API DescribeSpotPriceHistory в Java [2]. Дополнительные сведения о DescribeSpotPriceHistory см. В официальной документации [3].

использованная литература

[1]. https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/ec2/AmazonEC2.html#describeSpotPriceHistory-com.amazonaws.services.ec2.model.DescribeSpotPriceHistoryRequest-

[2]. https://www.programcreek.com/java-api-examples/index.php?api=com.amazonaws.services.ec2.model.SpotPrice

[3]. https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSpotPriceHistory.html

Другие вопросы по теме