aws sdk非常新,期待開始。我已經安裝了sdk和一切,但是如何使用php sdk啓動ec2實例?一些代碼示例真的很有用。如何啓動和停止使用php aws的ec2實例sdk
6
A
回答
8
下面是一個定義AMI啓動機器的一個基本的例子:
$image_id = 'ami-3d4ff254'; //Ubuntu 12.04
$min = 1; //the minimum number of instances to start
$max = 1; //the maximum number of instances to start
$options = array(
'SecurityGroupId' => 'default', //replace with your security group id
'InstanceType' => 't1.micro',
'KeyName' => 'keypair', //the name of your keypair for auth
'InstanceInitiatedShutdownBehavior' => 'terminate' //terminate on shutdown
);
require_once('AWSSDKforPHP/sdk.class.php');
$ec2 = new AmazonEC2();
$response = $ec2->run_instances($image_id, $min, $max, $options);
if(!$response->isOK()){
echo "Start failed\n";
}
這是假設你有你的AWS憑據設置正確......希望這可以讓你在正確的方向...
3
這裏是一個更詳細的腳本,如果你有興趣:
// Sleep time to allow EC2 instance to start up
$sleeptime = 15;
$username = "ec2-user";
// For AWS PHP SDK
putenv('HOME=/home/ec2-user/');
require_once 'AWSSDKforPHP/sdk.class.php';
// Get data from HTTP POST
$ami = $_POST['amis'];
$instancetype = $_POST['instancetype'];
$keyname = $_POST['key'];
$securitygroup = $_POST['securitygroups'];
// Instantiate the AmazonEC2 class
$ec2 = new AmazonEC2();
// Boot an instance of the image
$response = $ec2->run_instances($ami, 1, 1, array(
'KeyName' => $keyname,
'InstanceType' => $instancetype,
'SecurityGroupId' => $securitygroup,
));
if (!($response->isOK())) {
echo "<p class='error'>ERROR! Could not create new instance!</p>";
return;
}
$instance = $response->body->instancesSet->item->instanceId;
$message = "<p>Your instance has been successfully created.</p>";
$message .= ("<p>Instance ID is: <b>$instance</b></p>");
// Give instance some time to start up
sleep ($sleeptime);
// Get the hostname from a call to the DescribeImages operation.
$response = $ec2->describe_instances(array(
'Filter' => array(
array('Name' => 'instance-id', 'Value' => "$instance"),
)
));
if (!($response->isOK())) {
echo "<p class='error'>ERROR! Could not retrieve hostname for instance!</p>";
return;
}
$hostname = $response->body->reservationSet->item->instancesSet->item->dnsName;
// Output the message
$message .= "<p>Your instance hostname is: <b>$hostname</b></p>";
$message .= "<p>You can connect to your instance using this command:<br>" .
"<b>ssh -i $keyname.pem [email protected]" . $hostname . "</b></p>";
echo $message;
差不多一樣@ dleiftah的,除了它輸出新的主機名完成後的立場。
相關問題
- 1. 腳本自動啓動和停止AWS EC2實例
- 2. 如何使用AWS SDK啓動ec2實例並通過AWS CLI連接到它
- 3. 安排ec2實例啓動/停止
- 4. AWS EC2實例:啓動多個實例
- 5. 如何使用Boto啓動/停止AWS RDS實例?
- 6. AWS - EC2實例停止和啓動刪除的應用程序代碼
- 7. 停止一個AWS EC2實例在Java
- 8. EC2 AWS亞馬遜:停止實例
- 9. 如何EC2實例從AWS SDK
- 10. 如何使用不同的語言啓動AWS EC2實例
- 11. 如何啓動AWS EC2上的實例啓動程序
- 12. 如何使用Fog(rubygem)僅啓動/停止aws ec2實例,但不終止?
- 13. 如何使用AWS cloudformation啓動EC2實例
- 14. 使用Boto輪詢停止或啓動EC2實例
- 15. 如何確保EC2實例在停止/啓動時存活?
- 16. 如何在Amazon EC2上停止啓動Juju實例
- 17. 如何阻止Amazon Aws EC2實例?
- 18. 自動執行AWS實例啓動和停止
- 19. 停止AWS EC2實例導致停止一個
- 20. 2種方式來啓動和停止一個實例EC2
- 21. AWS EC2實例在停止時自動創建新的
- 22. AWS EC2實例停止開始之後,立刻使用boto3
- 23. 用Boto啓動一個已停止的EC2實例
- 24. 使用CLI啓動/停止單實例
- 25. 爲什麼我的AWS EC2實例在停止時終止?
- 26. AWS EC2實例上的觸發事件停止/終止
- 27. 無法自動啓動/停止aws ec2實例
- 28. 如何在java中以編程方式啓動和停止Amazon EC2實例
- 29. 在AWS EC2實例上啓用SSL
- 30. 確保停止EC2實例
謝謝你的這個有用的代碼。是否有可能啓動一個現有的實例?我似乎無法找到這些信息。 –
@SSHThis try startInstances –
它實際上是「start_instances」http://docs.aws.amazon.com/AWSSDKforPHP/latest/#m=AmazonEC2/start_instances –