3 Risposte
- Più recenti
- Maggior numero di voti
- Maggior numero di commenti
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)
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
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')
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
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?