我正在编译一个相当复杂的CloudFormation模板,并在某个时候创建一个ec2
实例;
我想创建一个lambda
函数,
这可能吗?
我要问是因为ec2
(未在控制台中被列为潜在的lambda触发器),并且想了解解决此问题的方法是否比在{{1 }}或sns
,然后依次触发lambda。
答案 0 :(得分:2)
我可以想到两种选择:
按照@ krishna_mee2004用户的说法,您可以使用CloudWatch监听您的EC2实例,这又会触发您的lambda。
在您的EC2实例上,“实例详细信息”下有一个名为User data
的字段。在User data
中,您可以添加在部署EC2实例时应运行的命令。从这里您可以调用您的lambda。
Here是有关EC2用户数据的文档。 Here是有关从CLI调用lambda的文档。
就个人而言,我建议使用选项1,因为我会在有机会的情况下更喜欢使用AWS工具,而CloudWatch就是一个很好的例子。但是,选项2可能会给您更多控制,以将什么有效负载发送到lambda。
答案 1 :(得分:0)
不建议您使用安全组。
如果希望允许EC2实例具有对安全组的入站访问权限,则应执行以下操作:
Instance-SG
Resource-SG
Resource-SG
中添加一个条目,以允许来自Instance-SG
的入站访问就是这样!现在,将授予与Instance-SG
关联的任何EC2实例入站访问Resource-SG
的权限。无需在安全组中放入特定的IP地址。
答案 2 :(得分:0)
最简单的方法是让EC2实例将自身添加到安全组中。
只需将其放入EC2实例的用户数据中,并确保为其分配了具有足够权限的IAM角色:
IP=`curl -s http://169.254.169.254/latest/meta-data/public-ipv4/`
aws ec2 authorize-security-group-ingress --group-name "Resource-SG" --protocol tcp --port 80 --cidr $IP/32 --region OTHER-REGION