【问题标题】:Base64 encode UserData parameter for EC2 RunInstances using AWS Lambda使用 AWS Lambda 对 EC2 RunInstances 的 UserData 参数进行 Base64 编码
【发布时间】: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


【解决方案1】:

根据 [AWS.EC2.runInstances() API 文档],UserData 参数必须是 Base64 编码的字符串。看起来您将其作为纯文本传递。

var params = {
...
  UserData: new Buffer('requestid').toString('base64')
...
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多