Je cherche un moyen d'attacher un script de données utilisateur à une RunRequest EC2 dans Java SDK (l'équivalent de ec2-run-instances ami-1234567 -f startup-script.zip pour l'outil de ligne de commande). J'ai lu que toute chaîne de données utilisateur avec "#!" Va s'exécuter, mais cela ne semble pas être le cas.EC2 Java SDK - Script de données utilisateur
Est-ce encore possible?
Pour votre information: Voici ma classe de test:
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<String> lines = new ArrayList<String>();
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<String> s, String delimiter) {
StringBuilder builder = new StringBuilder();
Iterator<String> iter = s.iterator();
while (iter.hasNext()) {
builder.append(iter.next());
if (!iter.hasNext()) {
break;
}
builder.append(delimiter);
}
return builder.toString();
}
}
Malheureusement, après que je cours, je suis en mesure de SSH dans la boîte, et confirme que
- Il a pas fermé et
- Il n'a pas télécharger le fichier
Toute aide est grandement appréciée.
Best,
Zach
Vous êtes tout à fait correct. Il semble que les versions par défaut d'Amazon n'exécutent pas de scripts utilisateur. Alors que les AMI d'Alestic sont fiables, j'ai un code spécifique à Fedora, alors je suis allé de l'avant et j'ai utilisé une bibliothèque Java pour SSH dans la boîte et j'ai exécuté tout ce dont j'avais besoin. –