【发布时间】:2015-09-07 15:13:51
【问题描述】:
我在传递用户数据以使用 AWS Lambda 启动 EC2 实例时遇到问题。我想将它作为纯文本或某种格式传递,它可以将我的纯文本转换为 Base64。当我将纯文本转换为 Base64 时,它正确传递并且可以以所需的格式检索。
请查看我的代码并建议我如何传递我的用户数据以便在启动实例时正确检索它。
console.log('Loading function');
var AWS = require('aws-sdk');
var ec2 = new AWS.EC2();
exports.handler = function(event, context) {
console.log('Received event:', JSON.stringify(event, null, 2));
// Get the object from the event and show its content type
var params = {
ImageId: 'ami-******', // EC2 instance
MinCount: 1,
MaxCount: 1,
DryRun: false,
EbsOptimized: false,
InstanceInitiatedShutdownBehavior: 'terminate',
InstanceType: 't2.micro',
KeyName: '*******',
Monitoring: {
Enabled: false /* required */
},
NetworkInterfaces: [
{
AssociatePublicIpAddress: true,
DeleteOnTermination: true,
Description: 'Primary network interface',
DeviceIndex: 0,
SubnetId: 'subnet-******'
},
],
Placement: {
AvailabilityZone: 'us-****-**',
Tenancy: 'default'
},
UserData: "requestid"
};
ec2.runInstances(params, function(err, data) {
if (err) {
console.log("Could not create instance", err);
context.fail('Error', "Error getting file: " + err);
return;
} else {
var instanceId = data.Instances[0].InstanceId;
console.log("Created instance", instanceId);
context.succeed("Created instance");
}
});
};
【问题讨论】:
-
我自己找到的。必须编码为 base64 并将其作为 userdata 传递
-
您可以自己回答这个问题并接受您的回答。
标签: amazon-web-services amazon-ec2 aws-lambda aws-sdk