Comment obtenir la liste des instances EC2 d'Amazon, PHP SDK 2?
Comment obtenir la liste des instances Amazon EC2 correspondant à certains filtres à l'aide de SDK AWS pour PHP 2?
OriginalL'auteur Victor Smirnov | 2013-03-05
Vous devez vous connecter pour publier un commentaire.
Utilisation DescribeInstances méthode pour cela. Let's couvrir avec un peu plus de détails.
Vous avez besoin pour obtenir Ec2Client première instance. La façon la plus simple pour initialiser le client:
Et puis il suffit d'appeler
DescribeInstances
méthode.Vous pouvez obtenir la liste des filtres disponibles sur le Amazon DescribeInstances méthode de l'API page.
Mais attendez, ce qui pourrait être difficile ici?
Filters
. Dans l'API, il est appeléFilter
Values
est appelé différente de l'API et c'est un tableauOui, tout cela est décrit dans la documentation. Mais si vous regardez certains Vieux d'utilisation de l'API échantillons vous pouvez voir que la syntaxe a changé et cela peut être vraiment difficile d'avis qu'il faut mettre à jour dans les exemples pour rendre les choses de travail.
Et pour compléter l'exemple laissez-moi vous montrer une simple sortie des résultats.
Bonjour. Je pense que vous êtes à l'aide de AWS SDK version 1 Ma question et l'exemple de code est pour AWS SDK version 2 je conseille de installer AWS en utilisant compositeur. Cordialement, Victor.
En effet, il était v1. Je suis allé avec le Compositeur installer et fonctionne maintenant. Il a eu l'impression pendant un bon 5 minutes maintenant, et, finalement, s'est écrasé Chrome. La réponse est-elle vraiment gros? Ou ai-je susceptible de se coincer dans certains boucle infinie? ... modifier Ressemble le print_r est le coupable. Fait et cela fonctionne. Imprime seulement un, mais je suis sûr que je peux résoudre ce problème.
Je reçois ce quand j'ai essayer le code ci-dessus Fatal error: Uncaught exception 'GuzzleHttp\Bague\Exception\RingException' with message 'erreur cURL 60: certificat SSL problème: impossible d'obtenir locales certificat de l'émetteur" dans D:\proiecte\PHP\www\wpec2\vendor\aws\aws-sdk-php\src\Common\AwsClient.php sur la ligne 275 GuzzleHttp\Exception\RequestException: cURL erreur 60: certificat SSL problème: impossible d'obtenir locales certificat de l'émetteur en D:\proiecte\PHP\www\wpec2\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php sur la ligne 51
Une chose que j'ai remarqué, c'est que dans la dernière mise à jour (à partir d'Amazon côté) pas d'API, vous pouvez maintenant appliquer ce PHP méthodes de l'api seulement pour la région que vous êtes connecté.
OriginalL'auteur Victor Smirnov
Victor réponse est génial, mais ça ne marchait pas pour moi parce que j'ai été absent une seule ligne:
L'Amazonie PHP SDK 2 retourne Bouffer des objets de Modèle pour beaucoup de choses (y compris le présent), et ils ont besoin d'être convertis à des tableaux avant foreach fonctionne. Plus d'infos ici:
http://guzzlephp.org/api/class-Guzzle.Service.Resource.Model.html
$reservations = $result['Reservations'];
ou avecget()
méthode$reservations = $result->get('Reservations');
. Dans les deux cas, vous obtiendrez un tableau en tant que résultat. Le résultat de la structure est décrite dans l'API. Cordialement, VictorOriginalL'auteur voidstin
qui a été de merveilleux aider Victor,
hey voidstin, qui n'était pas nécessaire dans mon cas [$réservations=$result->toArray();]
OriginalL'auteur Sekhar
Dans le but d'obtenir la liste des
PublicDnsName
vous pouvez utiliser ce code:Vous recevrez quelque chose comme ceci:
OriginalL'auteur Vladimir Kovpak