从AWS获取实例 - Amazon Web Services

时间:2015-11-27 11:55:19

标签: php amazon-web-services

我想从AWS获取实例。

这是我的功能:

$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 ) ) ) )

我不知道如何获得预期的结果。我可以得到任何帮助吗?

感谢。

1 个答案:

答案 0 :(得分:0)

这里有两件事:

  • 您拥有AWS SDK,这是您在第一个链接中列出的
  • 您拥有构建于AWS SDK之上的PHP SDK。

通过PHP SDK时,您将不会收到SDK答案(即XML)。有关PHP sdk返回的内容,请参阅http://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2015-10-01.html#describeinstances