2015-11-27 4 views
0

Я хочу получить экземпляры из AWS.Получить экземпляры из AWS - Amazon Web Services

Вот моя функция:

$ec2Client = Ec2Client::factory(array(
'version' => '2015-10-01', 
'region' => 'us-east-1', 
'credentials' => array(
'key' => 'key', 
'secret' => 'secret', 
) 
)); 
$result = $ec2Client->DescribeInstances(); 

Я ожидаю, что следующий результат, как указано в: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html?r=2119#API_DescribeInstances_Errors:

<DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2015-10-01/"> 
    <requestId>fdcdcab1-ae5c-489e-9c33-4637c5dda355</requestId> 
    <reservationSet> 
     <item> 
     <reservationId>r-1a2b3c4d</reservationId> 
     <ownerId>123456789012</ownerId> 
     <groupSet> 
      <item> 
      <groupId>sg-1a2b3c4d</groupId> 
      <groupName>my-security-group</groupName> 
      </item> 
     </groupSet> 
     <instancesSet> 
      <item> 
      <instanceId>i-1a2b3c4d</instanceId> 
      <imageId>ami-1a2b3c4d</imageId> 
      <instanceState> 
       <code>16</code> 
       <name>running</name> 
      </instanceState> 
      <privateDnsName/> 
      <dnsName/> 
      <reason/> 
      <keyName>my-key-pair</keyName> 
      <amiLaunchIndex>0</amiLaunchIndex> 
      <productCodes/> 
      <instanceType>c1.medium</instanceType> 
      <launchTime>YYYY-MM-DDTHH:MM:SS+0000</launchTime> 
      <placement> 
       <availabilityZone>us-west-2a</availabilityZone> 
       <groupName/> 
       <tenancy>default</tenancy> 
      </placement> 
      <platform>windows</platform> 
      <monitoring> 
       <state>disabled</state> 
      </monitoring> 
      <subnetId>subnet-1a2b3c4d</subnetId> 
      <vpcId>vpc-1a2b3c4d</vpcId> 
      <privateIpAddress>10.0.0.12</privateIpAddress> 
      <ipAddress>46.51.219.63</ipAddress> 
      <sourceDestCheck>true</sourceDestCheck> 
      <groupSet> 
       <item> 
       <groupId>sg-1a2b3c4d</groupId> 
       <groupName>my-security-group</groupName> 
       </item> 
      </groupSet> 
      <architecture>x86_64</architecture> 
      <rootDeviceType>ebs</rootDeviceType> 
      <rootDeviceName>/dev/sda1</rootDeviceName> 
      <blockDeviceMapping> 
       <item> 
       <deviceName>/dev/sda1</deviceName> 
       <ebs> 
        <volumeId>vol-1a2b3c4d</volumeId> 
        <status>attached</status> 
        <attachTime>YYYY-MM-DDTHH:MM:SS.SSSZ</attachTime> 
        <deleteOnTermination>true</deleteOnTermination> 
       </ebs> 
       </item> 
      </blockDeviceMapping> 
      <virtualizationType>hvm</virtualizationType> 
      <clientToken>ABCDE1234567890123</clientToken> 
      <tagSet> 
       <item> 
       <key>Name</key> 
       <value>Windows Instance</value> 
       </item> 
      </tagSet> 
      <hypervisor>xen</hypervisor> 
      <networkInterfaceSet> 
       <item> 
       <networkInterfaceId>eni-1a2b3c4d</networkInterfaceId> 
       <subnetId>subnet-1a2b3c4d</subnetId> 
       <vpcId>vpc-1a2b3c4d</vpcId> 
       <description>Primary network interface</description> 
       <ownerId>123456789012</ownerId> 
       <status>in-use</status> 
       <macAddress>1b:2b:3c:4d:5e:6f</macAddress> 
       <privateIpAddress>10.0.0.12</privateIpAddress> 
       <sourceDestCheck>true</sourceDestCheck> 
       <groupSet> 
        <item> 
        <groupId>sg-1a2b3c4d</groupId> 
        <groupName>my-security-group</groupName> 
        </item> 
       </groupSet> 
       <attachment> 
        <attachmentId>eni-attach-1a2b3c4d</attachmentId> 
        <deviceIndex>0</deviceIndex> 
        <status>attached</status> 
        <attachTime>YYYY-MM-DDTHH:MM:SS+0000</attachTime> 
        <deleteOnTermination>true</deleteOnTermination> 
       </attachment> 
       <association> 
        <publicIp>198.51.100.63</publicIp> 
        <ipOwnerId>123456789012</ipOwnerId> 
       </association> 
       <privateIpAddressesSet> 
        <item> 
        <privateIpAddress>10.0.0.12</privateIpAddress> 
        <primary>true</primary> 
        <association> 
         <publicIp>198.51.100.63</publicIp> 
         <ipOwnerId>123456789012</ipOwnerId> 
        </association> 
        </item> 
        <item> 
        <privateIpAddress>10.0.0.14</privateIpAddress> 
        <primary>false</primary> 
        <association> 
         <publicIp>198.51.100.177</publicIp> 
         <ipOwnerId>123456789012</ipOwnerId> 
        </association> 
        </item> 
       </privateIpAddressesSet> 
       </item> 
      </networkInterfaceSet> 
      </item> 
     </instancesSet> 
     </item> 
    </reservationSet> 
    </DescribeInstancesResponse> 

Но я получаю следующий результат:

Aws\Result Object ([data:Aws\Result:private] => Array ([Reservations] => Array () [@metadata] => Array ([statusCode] => 200 [effectiveUri] => https://ec2.us-east-1.amazonaws.com [headers] => Array ([content-type] => text/xml;charset=UTF-8 [transfer-encoding] => chunked [vary] => Accept-Encoding [date] => Fri, 27 Nov 2015 07:03:59 GMT [server] => AmazonEC2)))) 

я не знаю, как получить ожидаемый результат. Могу ли я получить помощь?

спасибо.

+0

Ваши примеры в нас-восток-1? – phoenix

+0

есть. экземпляры находятся в us-east-1 –

+0

Это сообщение сделало это с помощью php: http://stackoverflow.com/questions/15233913/how-to-get-list-of-ec2-instances-with-amazon-php-sdk -2 – phoenix

ответ

0

2 вещи здесь:

  • у вас есть SDK AWS, который является то, что вы перечислили в первой ссылке
  • у вас есть PHP SDK, который построен на вершине AWS SDK.

Вы не получите ответ SDK (т. Е. XML) при просмотре PHP SDK. См. http://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2015-10-01.html#describeinstances, что возвращает PHP sdk.

+0

ОК. как я могу получить IP-адрес, состояние работоспособности и версию api из php sdk. ? –