how to check if a python script is running in an ec2?

0

are there any environment variables that i can check if exists , while running my python script in an aws ec2 or a sagemaker instance ? something like this ...

import os 

aws_environment = os.environ.get('AWS..') 

已提問 3 個月前檢視次數 222 次
3 個答案
1

Hello.

How about writing code to get instance metadata?
I tried translating the commands described in the document below into python.
You can check the EC2 instance ID by running the Python below.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html

import requests

def get_ec2_metadata():
    token_url = "http://169.254.169.254/latest/api/token"
    meta_data_instance_id = "http://169.254.169.254/latest/meta-data/instance-id"

    headers = {
        "X-aws-ec2-metadata-token-ttl-seconds": "21600"
    }
    response = requests.put(token_url, headers=headers)
    token = response.text

    headers = {
        "X-aws-ec2-metadata-token": token
    }
    response = requests.get(meta_data_instance_id, headers=headers)
    metadata = response.text

    return metadata

metadata = get_ec2_metadata()
print(metadata)
profile picture
專家
已回答 3 個月前
profile pictureAWS
專家
已審閱 3 個月前
0

Hi,

Sagemaker API has a specific Python API to retrieve its default environment variables. It's sagemaker.environment_variables.retrieve_default()

See documentation: https://sagemaker.readthedocs.io/en/v2.78.0/api/utility/environment_variables.html

Best,

Didier

profile pictureAWS
專家
已回答 3 個月前
  • thanks, aren't there any env variables that are set in the environment, when a instance spins up in sagemaker , that i can check if exists?

0

You can check for the presence of the instance metadata service as it won't respond it you're not running on EC2:

import requests

try:
    requests.get('http://169.254.169.254/', timeout=2)
except OSError:
    print('Not running on EC2')
else:
    print('Running on EC2')
profile pictureAWS
專家
已回答 3 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南