2011-09-20 53 views
3

启动ec2实例时用户数据是否应始终为String?不能说是一个字节数组? Java API:我使用ec2Client.runInstance(TEST_IMAGE_ID,instanceType,“USER_DATA”);使用userdata启动AmazonEC2

+0

您正在使用哪个客户端库? –

+0

包装它们提供的基本Java sdk(AWS SDK for Java)。 – Satish

回答

4

根据Amazon

用户数据必须的base64提交给API之前编码。 API命令行工具为您执行base64编码。数据以base64格式显示,并在提交给实例之前解码。

您需要知道您的Java API是否会为您执行此base-64编码,或者您是否必须自己做。 [请参阅以下Matt Solnit的评论。]

无论如何,请注意不要超过用户数据的16KB限制。

+2

适用于Java的AWS开发工具包不会自动执行base64编码,因此您可以:-)。 –

+1

我假设大多数AWS SDK for Java用户都不对他们传入的简单用户数据文本进行base-64编码。如果这样,那么我猜EC2必须返回实例上的原始用户数据文本,如果它是不base64编码。这份文件和实际行为从来都没有清楚过。 –

+0

我有同样的想法。我使用Typica,它始终是base64编码。我确实发现[此论坛帖子](https://forums.aws.amazon.com/thread.jspa?messageID=275582񃑾),它表示AWS SDK可能最近已经发生变化:“[我们]正在尝试升级到最新的v1.2.7(显然启动配置用户数据现在需要base64编码)“ –