我有这个bash脚本,其中列出了跨区域的所有活动EC2实例:
for region in `aws ec2 describe-regions --output text | cut -f3` do
echo -e "\nListing Instances in region:'$region'..."
aws ec2 describe-instances --region $region
done
我想将此移植到AWS上的Lambda函数。今天最好的方法是什么?我必须使用包装纸或类似包装纸吗?节点?我在Google上搜索后发现最像是解决方法..但它们已经存在了两年。不胜感激。
答案 0 :(得分:1)
两种方法:
使用自定义运行时和图层:https://github.com/gkrizek/bash-lambda-layer
“正在从另一个运行时执行:https://github.com/alestic/lambdash
答案 1 :(得分:1)
您应该使用具有AWS开发工具包的语言(例如Python)来编写它。
您还应该考虑Lambda函数应该对输出进行 的操作,因为此刻Lambda函数仅检索信息,但不对其进行任何操作。
这是示例AWS Lambda函数:
import boto3
def lambda_handler(event, context):
instance_ids = []
# Get a list of regions
ec2_client = boto3.client('ec2')
response = ec2_client.describe_regions()
# For each region
for region in response['Regions']:
# Get a list of instances
ec2_resource = boto3.resource('ec2', region_name=region['RegionName'])
for instance in ec2_resource.instances.all():
instance_ids.append(instance.id)
# Return the list of instance_ids
return instance_ids
请注意,顺序调用所有区域要花费大量时间。以上过程可能需要15到20秒。