Я ищу способ присоединить пользовательский сценарий данных к EC2 RunRequest в Java SDK (эквивалент ec2-run-instances ami-1234567-f startup-script.zip для инструмента командной строки).
Несколько вещи Я читал, указывают, что что-либо пользовательские данные представляет в виде строки с "#!" выполнится, но это, кажется, не имеет место.
Это даже возможно?
К вашему сведению: вот мой тестовый класс:
public class AWSTest {
public static void main(String[] args) {
AWSCredentials credentials = new BasicAWSCredentials("access-key","secret-access-key");
AmazonEC2Client ec2 = new AmazonEC2Client(credentials);
RunInstancesRequest request = new RunInstancesRequest();
request.setInstanceType(InstanceType.M1Small.toString());
request.setMinCount(1);
request.setMaxCount(1);
request.setImageId("ami-84db39ed");
request.setKeyName("linux-keypair");
request.setUserData(getUserDataScript());
ec2.runInstances(request);
}
private static String getUserDataScript(){
ArrayList lines = new ArrayList();
lines.add("#! /bin/bash");
lines.add("curl http://www.google.com > google.html");
lines.add("shutdown -h 0");
String str = new String(Base64.encodeBase64(join(lines, "\n").getBytes()));
return str;
}
static String join(Collection s, String delimiter) {
StringBuilder builder = new StringBuilder();
Iterator iter = s.iterator();
while (iter.hasNext()) {
builder.append(iter.next());
if (!iter.hasNext()) {
break;
}
builder.append(delimiter);
}
return builder.toString();
}
}
К сожалению, после того, как я выполняю это, я могу к SSH в поле, и подтвердите это
Любая помощь значительно ценится.
С наилучшими пожеланиями,
Zach
Возможно ли, что используемый вами AMI не поддерживает скрипт пользовательских данных? Пожалуйста, используйте AMI, найденные на www.alestic.com.
Хорошая ссылка также http://alestic.com/2009/06/ec2-user-data-scripts