[英]Run python Flask API on AWS EC2 through boto3
我是 AWS 的新手,所以我正在构建一个代码来从图像创建一个实例,我希望在创建这个 EC2 的同时它运行一个像这样的 pyhton 代码:
python /folder/folder2/api_flask.py
这是我在 boto 上创建实例的代码。
import boto3
client = boto3.session('ec2')
client.run_instances(ImageId='ami-id_number_of_img', MinCount=1, MaxCount=1, InstanceType='t2.nano')
谢谢你的帮助。
run_instances有一个名为UserData
的选项,它允许您在启动时在 Linux 实例上运行命令。
因此,要运行您的代码,您可以尝试以下操作:
import boto3
client = boto3.client('ec2') # not boto3.session('ec2')
client.run_instances(ImageId='ami-id_number_of_img',
MinCount=1,
MaxCount=1,
InstanceType='t2.nano',
UserData='#!/bin/bash\npython /folder/folder2/api_flask.py\n')
由于您提到您不熟悉 AWS,请考虑使用 CloudFormation 来配置 AWS 基础设施。 您仍然需要利用 Marcin 提到的UserData
。
MyInstance:
Type: AWS::EC2::Instance
Properties:
UserData:
Fn::Base64: !Sub |
python /folder/folder2/api_flask.py
InstanceType: t2.nano
ImageId: ami-id_number_of_img
为什么选择 CloudFormation? 它会更具可读性,允许就地更新和拆卸。 然后您可以通过 boto3 启动堆栈(免责声明:未经测试,但演示了这个想法):
import boto3
client = boto3.client('cloudformation')
with open('mytemplate.yml', 'r') as f:
response = client.create_stack(
StackName='my-stack',
TemplateBody=f.read())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.