Получение идентификатора экземпляра, недавно запущенного с ec2-api-tools

Трассировка стека стека в строку

import java.io.PrintWriter;
import java.io.StringWriter;

public class StackTraceUtils {
    public static String stackTraceToString(StackTraceElement[] stackTrace) {
        StringWriter sw = new StringWriter();
        printStackTrace(stackTrace, new PrintWriter(sw));
        return sw.toString();
    }
    public static void printStackTrace(StackTraceElement[] stackTrace, PrintWriter pw) {
        for(StackTraceElement stackTraceEl : stackTrace) {
            pw.println(stackTraceEl);
        }
    }
}

Это полезно, когда вы хотите распечатать текущую трассировку стека потоков, не создавая экземпляр Throwable - но обратите внимание, что создание новой Throwable и получение трассировки стека оттуда быстрее и дешевле, чем называть Thread.getStackTrace.

16
задан Jonik 15 April 2010 в 12:03
поделиться

2 ответа

Хорошо, по крайней мере, что-то вроде этого должно работать:

instance_id=$(ec2-run-instances ami-dd8ea5a9 [...] | awk '/INSTANCE/{print $2}') 

По общему признанию, я немного ленивый думал, что быстрее спросить о SO, чем переучивать некоторые основы AWK ...: -)

Редактировать : упрощенное использование AWK, как предложил Деннис. Кроме того, используя $() вместо `` для ясности, и избавился от промежуточной переменной.

10
ответ дан 30 November 2019 в 16:57
поделиться

В качестве альтернативы ec2-run-instances, вы можете создать один экземпляр ec2 и получить InstanceId на одну строку с помощью awscli run-instances :

export MyServerID=$(aws ec2 run-instances --image-id AMI --count 1 --instance-type t2.micro --key-name "my_ssh_key" --security-group-ids sg-xxx --subnet-id subnet-yyy --query 'Instances[0].InstanceId' --output text)
3
ответ дан 30 November 2019 в 16:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: