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..') 

asked 2 months ago166 views
3 Answers
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
EXPERT
answered 2 months ago
profile pictureAWS
EXPERT
reviewed 2 months ago
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
EXPERT
answered 2 months ago
  • 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
EXPERT
answered 2 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions