我一直试图通过SDK发送OpsWorks部署命令,但是我收到了这个错误:
Fatal error: Uncaught Aws\OpsWorks\Exception\ValidationException: AWS Error Code: ValidationException, Status Code: 400, AWS Request ID: f33c4c59-f48c-11e2-9764-4d0c126d6399, AWS Error Type: client, AWS Error Message: , User-Agent: aws-sdk-php2/2.4.1 Guzzle/3.7.1 curl/7.24.0 PHP/5.3.15
thrown in /Users/bigtallbill/REPOS/WEB-APPLICATION/vendor/aws/aws-sdk-php/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 91
这是我的测试代码:
<?php
require_once "vendor/autoload.php";
use Aws\S3\S3Client;
use Aws\OpsWorks\OpsWorksClient;
define('AWS_KEY', 'mykey');
define('AWS_SECRET', 'mySecret');
define('AWS_OPSWORKS_STACKID', 'my-stack-id');
$opsWorksClient = OpsWorksClient::factory(array(
'key' => AWS_KEY,
'secret' => AWS_SECRET,
'region' => 'us-east-1'
));
$result = $opsWorksClient->createDeployment(array(
'StackId' => AWS_OPSWORKS_STACKID,
'Command' => array(
'Name' => 'deploy'
)
));
var_dump($result);
现在一直在为这一天的大部分时间而奋斗。我尝试过使用最新版本以及最新版本。
此外,我的应用程序可以通过Web界面正常部署。我也在使用普通的AWS密钥,而不是IAM用户。
非常感谢任何帮助:)
答案 0 :(得分:1)
API docs for createDeployment提到部署应用时还需要AppId
参数。
答案 1 :(得分:0)
我不熟悉PHP语法,但这里有一个可用的Ruby代码片段。你需要第一个阵列吗? opsworks.create_deployment(:stack_id =&gt; app [:stack_id],:app_id =&gt; app_id,:instance_ids =&gt; instance_ids,:command =&gt; {:name =&gt;'deploy'})