Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本有没有一种方法可以;承认;它正在哪个EC2实例上运行?_Python_Python 3.x_Amazon Web Services_Amazon Ec2_Boto3 - Fatal编程技术网

Python脚本有没有一种方法可以;承认;它正在哪个EC2实例上运行?

Python脚本有没有一种方法可以;承认;它正在哪个EC2实例上运行?,python,python-3.x,amazon-web-services,amazon-ec2,boto3,Python,Python 3.x,Amazon Web Services,Amazon Ec2,Boto3,假设我的脚本运行在一个名为EC2-test1的EC2实例上,它与一个名为S3-bucket-test1的S3 bucket通信,但是当脚本运行在EC2-test2上时,它能够识别它当前运行的EC2实例,并将目录更改为referenceS3-bucket-test2。有办法吗?我知道对于内部路径,您可以使用os.path.dirname(os.path.realpath(_文件__)),但我想知道是否有一种方法可以在Python中对EC2实例名执行类似的操作 使用以下命令获取当前实例名称警告:不包

假设我的脚本运行在一个名为
EC2-test1
的EC2实例上,它与一个名为
S3-bucket-test1
的S3 bucket通信,但是当脚本运行在
EC2-test2
上时,它能够识别它当前运行的EC2实例,并将目录更改为reference
S3-bucket-test2
。有办法吗?我知道对于内部路径,您可以使用
os.path.dirname(os.path.realpath(_文件__))
,但我想知道是否有一种方法可以在Python中对EC2实例名执行类似的操作

使用以下命令获取当前实例名称警告:不包括异常处理

import boto3
import os

def get_inst_name():
  # Get Instance ID from EC2 Instance Metadata
  inst_id = os.popen("curl -s http://169.254.169.254/latest/meta-data/instance-id").read()

  # Get EC2 instance object
  ec2 = boto3.resource('ec2')
  inst = ec2.Instance(inst_id)

  # Obtain tags associated with the EC2 instance object
  for tags in inst.tags:
    if tags["Key"] == 'Name':
      #print tags["Value"]
      return tags["Value"]
  • 从元数据服务器获取实例id
  • 使用实例id查询Boto3资源

试试ec2元查询工具