amazon-web-services - 使用 AWS Lambda 启动 EC2 实例 + 提供要处理的文件路径
问题描述
我想编写一个启动 EC2 实例的 Lambda 函数。该实例应该:
datadump-input
从我的S3 存储桶下载 CSV 文件- 使用预加载的 Python 脚本处理文件
如何让我的 EC2 实例从 S3 下载正确的文件?文件名是从事件对象中解析出来的,并且在每次运行时都会有所不同。
解决方案
您可以在启动实例时使用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中有很多其他选项可用于创建实例。
推荐阅读
- mysql - Mysql查询优化
- postgresql - 如何仅在更改表时不存在时添加约束,在postgress中
- kubernetes - 如何使用 farbric8 连接到 Pod 中的 Kubernetes API
- tomcat - tomcat:自定义属性在开始时从 /classes 中删除
- html - 为什么 CSS 不再适用于我的 HTML?
- python-3.x - 如何使用python替换句子中的多个单词
- javascript - 将对象键定义为给定变量的值,而不是变量本身的名称
- python - 在“string”中的 .str.contains 和“string”之间分析哪个更快
- amazon-web-services - AWS CDK s3 部署更改中间资产存储桶目录
- java - 为什么多行 Stacktraces 在 GCP 日志资源管理器中显示为单独的日志?