致命错误:未捕获的Aws \ OpsWorks \ Exception \ ValidationException:AWS错误代码:通过php sdk运行deploy命令时的ValidationException

时间:2013-07-25 18:47:36

标签: php sdk amazon-web-services amazon

我一直试图通过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用户。

非常感谢任何帮助:)

2 个答案:

答案 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'})