2012-04-17 6 views
6

C'è un modo per ottenere il DNS pubblico di un'istanza EC2 utilizzando PHP amazon SDK (o gli strumenti della riga di comando API di Amazon)?Come ottenere il DNS pubblico di un'istanza al livello di programmazione?

Ho provato questo codice PHP (tra gli altri), ma non funziona:

require_once '/full/path/sdk.class.php'; 
$ec2  = new AmazonEC2(); 
$response = $ec2->describe_regions(); 
print_r($response); 

e anche

require_once '/full/path/sdk.class.php'; 
$ec2  = new AmazonEC2(); 
$response = $ec2->describe_instances(array(
    'Filter' => array(
     array('Name' => 'availability-zone', 'Value' => 'eu-west-1') 
    ) 
)); 

print_r($response); 

ma non riesco a vedere il DNS pubblico nella risposta

risposta

4

A quanto pare si desidera recuperare l'istanza Amazon EC2 nella regione eu-west-1 (che non è un valore corretto per 'availability-zone' btw.). Tuttavia, non si indica alcuna regione e tutti i servizi di default per la regione degli Stati Uniti-Est, vedere la risposta della squadra AWS alla relativa domanda describeInstances() is only giving me instances in us-east:

Anche se non si può afferrare i dati per tutte le regioni in un chiamata singola, è possibile chiamare il metodo describe_instances() in ciascuna regione.

$ec2 = new AmazonEC2(); 
$ec2->set_region(AmazonEC2::REGION_US_W1); // US-West 1 

$response = $ec2->describe_instances(); 

Utilizzando questo codice con la costante appropriata per la regione scelta (ad esempio AmazonEC2::REGION_EU_W1) dovrebbe produrre il risultato desiderato.

+1

Che ha fatto, grazie Steffen! –

6

Se si esegue questo nell'istanza stessa, si può colpire endpoint metadati interni di AWS:

$hostname = file_get_contents('http://169.254.169.254/latest/meta-data/public-hostname'); 

http://169.254.169.254/latest/meta-data/ vi darà un elenco dei vari metadati a vostra disposizione. Attualmente:

ami-id 
ami-launch-index 
ami-manifest-path 
block-device-mapping/ 
hostname 
instance-action 
instance-id 
instance-type 
kernel-id 
local-hostname 
local-ipv4 
mac 
metrics/ 
network/ 
placement/ 
profile 
public-hostname 
public-ipv4 
public-keys/ 
reservation-id 
security-groups 
+0

Molto interessante ... no, non sono nella stessa istanza, ma grazie mille per la risposta ceejayoz! –

Problemi correlati