【发布时间】:2015-06-08 05:06:40
【问题描述】:
如何将 bash 脚本文件中的内容转换为可与 Amazon 的 Java API 一起使用的 base64 编码字符串?此代码表达了我正在尝试执行的操作,但会导致异常:
...原因:com.amazonaws.AmazonServiceException:用户数据的 BASE64 编码无效(服务:AmazonEC2;状态代码:400;错误代码:InvalidParameterValue...
String startupUserData = "#!/bin/bash cd /home/ubuntu/myTestDir; mvn test -PmyBuild";
startupUserData = org.apache.commons.codec.binary.Base64.encodeBase64String(startupUserData.getBytes());
runRqst.withImageId(_computerAmi)
.withInstanceType(instanceSize)
.withMinCount(hwRequest.numHwComputers)
// .withMaxCount(Utils.MAX_EC2_INSTANCES_AT_A_TIME) // NOT THIS
.withMaxCount(hwRequest.numHwComputers)
.withKeyName(_keyName)
.withSecurityGroups(_securityGroup)
.withUserData(startupUserData);
ec2.runInstances(runRqst);
编辑: com.amazonaws.util.Base64.encodeAsString() 消除了异常,但脚本仍然没有执行。字符串应该如何格式化?应该有回车吗?
【问题讨论】:
标签: java amazon-web-services amazon-ec2 user-data