Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
424 views
in Technique[技术] by (71.8m points)

amazon web services - Use AWS Lambda to start an EC2 instance + provide path to file to be processed

I want to write a Lambda function that will start an EC2 instance. That instance should then:

  1. Download a CSV file from my datadump-input S3 bucket
  2. Process the file with preloaded Python scripts

How do I make my EC2 instance download the correct file from S3? The file name is parsed from the event object and will be different on each run.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use userdata for passing the filename from your lambda while starting the instance.

Below is some code for the same:

    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')

there are whole lots of other options available in boto3 for creating the instance.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...