[英]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.