【发布时间】:2016-09-05 10:20:24
【问题描述】:
每次发生特定事件时,我都会尝试通过 lambda 启动新的 ec2 实例。我有一个 bash 脚本,我想在每次启动新的 ec2 实例时运行它,并且我希望使用 runinstances 的 userdata 参数附加它。
我已经测试了脚本,当我通过 aws 控制台启动实例时它运行良好。
我怀疑这可能是因为我的语法错误。我意识到这个问题是非常基本的,但我多次尝试了各种排列,但无法启动并运行它。
function(next) {
console.log("INITIALIZING EC2");
var params = {
ImageId: 'ami-b2c934d2',
InstanceType: 't2.micro', //'c4.4xlarge',
MinCount: 1, MaxCount: 1,
KeyName: 'malpem2102'
UserData : console.log(new Buffer('#!/bin/bash \n
sudo apt-get install awscli -y \n
echo alarm \n
aws configure set default.region us-west-2 \n
aws configure set aws_access_key_id AKIAIXXXXXXXXX \n
aws configure set aws_secret_access_key U2fyRtyakG1kAXXXXXXXXXX \n
instance=`curl -s http://169.254.169.254/latest/meta-data/instance-id/` \n
aws cloudwatch put-metric-alarm --alarm-name $instance --alarm-description
"Terminate the instance when it is idle for 10mins" --namespace "AWS/EC2"
--dimensions Name=InstanceId,Value=$instance --statistic Average
--metric-name CPUUtilization --comparison-operator LessThanThreshold
--threshold 5 --period 120 --evaluation-periods 5 --alarm-actions
arn:aws:automate:us-west-2:ec2:terminate \n').toString('base64'));
};
【问题讨论】:
-
请勿在论坛中发布 aws_access_key_id 和 aws_secret_access_key。
-
检查 ec2 实例内的日志 /var/log/cloud-init.log 以了解更多确切原因。
-
console.log 返回未定义,因此您的用户数据未定义
-
你找到解决办法了吗?我遇到了同样的问题
标签: node.js amazon-web-services amazon-ec2 aws-lambda