Выполнить команду AWS в затмении - PullRequest
0 голосов
/ 06 ноября 2018

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

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 тот же результат, что и в консоли оболочки?

1 Ответ

0 голосов
/ 06 ноября 2018

Похоже, вы не получаете ожидаемый результат, потому что вы передаете консольную команду через ваш Java-код, который не обрабатывается должным образом, и вы вместо этого не используете AWS SDK для Java. Чтобы получить ожидаемый результат в вашей консоли Eclipse, вы можете использовать вызов API DescribeSpotPriceHistory Java SDK в своем коде [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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...