首页 > 解决方案 > 使用 AWS Lambda 启动 EC2 实例 + 提供要处理的文件路径

问题描述

我想编写一个启动 EC2 实例的 Lambda 函数。该实例应该:

  1. datadump-input从我的S3 存储桶下载 CSV 文件
  2. 使用预加载的 Python 脚本处理文件

如何让我的 EC2 实例从 S3 下载正确的文件?文件名是从事件对象中解析出来的,并且在每次运行时都会有所不同。

标签: amazon-web-servicesamazon-s3amazon-ec2aws-lambda

解决方案


您可以在启动实例时使用userdata从 lambda 传递文件名。

下面是一些相同的代码:

    import boto3

    ec2 = boto3.resource('ec2')

    user_data = '''#!/bin/bash
    echo 'myfilename' > /tmp/s3filetodownload'''

    instance = ec2.create_instances(ImageId='ami',
               MinCount=1,
               MaxCount=1,
               KeyName='sshkey',
               SecurityGroupIds=['security_group_id'], 
               UserData=user_data,
               InstanceType='t2.micro',
               SubnetId='mysubnet_id')

boto3中有很多其他选项可用于创建实例。


推荐阅读