接入AWS SDK遇到的问题

摘要:接入API 遇到了AUTHPARMAS 失败的问题,后来采用了SDK的方式

1、第一个问题credentials 无法识别,采用了强制写目录的方式
2、第二个问题说CA认证失败,修改了php.ini中的配置文件解决了问题
3、认证失败,通过检查发现是ID和KEY改变了造成的

PHP代码示例

use Aws\Ec2\Ec2Client;
use Aws\Credentials\CredentialProvider;
    public function aws_test()
    {
        vendor('aws.aws-autoloader');
        $profile = 'default';
        $path = 'D:\phpStudy\WWW\tongyi-login\integration\.aws\credentials';
        $provider = CredentialProvider::ini($profile, $path);
        $provider = CredentialProvider::memoize($provider);
        $ec2Client = new Ec2Client([
                                       'region' => 'us-west-2',
                                       'version' => '2016-11-15',
                                       'credentials' => $provider
                                   ]);

        $result = $ec2Client->describeInstances();

        dd($result);
    }

php.ini配置

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo="D:\phpStudy\WWW\tongyi-login\integration\crt\cacert.pem"
openssl.cafile="D:\phpStudy\WWW\tongyi-login\integration\crt\cacert.pem"
评论
  • 2019-03-06 17:05:26 by Eric Guo
    region在使用的时候不能加字母 us-west-2a 应该是us-west-2 否则sdk会报错
  • 2018-11-16 15:59:45 by Eric Guo
    $obj->param; 这样使用会是返回个null,跟aws发了邮件没回复,最后灵机一动用toArray让框架自己去处理,在TP3.2中转换成功了,他会只保存里面的数组,外面这个神奇的结构没有保留
  • 2018-11-16 15:58:27 by Eric Guo
    返回的数据结构是个对象还是神奇的对象object(Aws\Result)#109 (2) { ["data":"Aws\Result":private] => array(2) { ["Reservations"] => array(6) { [0] => array(4) 还带双引号还带冒号的,神奇的格式所以直接使用对象会报错
  • 2018-11-16 15:15:53 by Eric Guo
    API 文档 https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/APIReference/CommonParameters.html
  • 2018-11-16 15:15:36 by Eric Guo
    SDK文档 https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeinstances
  • 2018-11-16 15:15:15 by Eric Guo
    节点的列表 https://docs.aws.amazon.com/zh_cn/general/latest/gr/rande.html
  • 2018-11-16 15:10:18 by Eric Guo
    在测试的时候,发现可能是测试的接口的问题,出现很多STOP状态的实例,通过终止实例,然后他会自动去卷里面将对应的删除,大概需要2-3个小时,这个实例就会自动删除