2015-12-10 2 views
1
require "config.php"; 
require __DIR__ . '/vendor/autoload.php'; 
$sdk = new Aws\Sdk([ 
    'region' => 'us-east-1', 
    'version' => 'latest', 
    'credentials' => array(
     'key' => $global_access_key, 
     'secret' => $global_secret_key, 
    ), 
]); 

$dynamodb = $sdk->createDynamoDb(); 

$response = $dynamodb->getItem([ 
    'TableName' => $global_table_name, 
'Key' => [ 
    'userid' => [ 'N' => '1' ] 
    ] 
]); 

var_dump($response); 
die; 

, когда я пытаюсь запустить этот код дает ошибку, которая определяется как:Доступ dynamodb с помощью СДК-для-PHP

Фатальная ошибка: Uncaught исключение «Аус \ DynamoDb \ Exception \ DynamoDbException» с сообщением «Ошибка при выполнении« GetItem »в« https://dynamodb.us-east-1.amazonaws.com »; Ошибка AWS HTTP: ошибка cURL 60: проблема сертификата SSL: невозможно получить сертификат локального эмитента (см. http://curl.haxx.se/libcurl/c/libcurl-errors.html) 'в C: \ wamp \ www \ practice \ vendor \ aws \ aws-sdk-php \ src \ WrappedHttpHandler.php on line 159

ответ

1
$sdk = new Aws\Sdk([ 
'region' => 'us-east-1', 
'version' => 'latest', 
'credentials' => array(
    'key' => $global_access_key, 
    'secret' => $global_secret_key, 
), 
'signature_version' => 'v4', 
'http' => [ 
    'verify' => false 
] 
]); 

получил ответ от чтения документации

1

Вместо того, чтобы отключить SSL проверки, что может приводит к человеку в центре нападения. ниже решение будет более безопасным и уместным.

  1. загрузить последний файл сертификата от http://curl.haxx.se/ca/cacert.pem
  2. сохранить его в путь, доступный вашим кодом. (например: - C: \ nginx \ cert \ cacert.pem)
  3. в зависимости от версии aws-sdk-php, которую вы используете, измените свой код, как показано ниже.

версия 2.X: -

$aws = Aws\Common\Aws::factory(array(
'region' => 'us-west-2', 
'key' => '****', 
'secret' => '****', 
'ssl.certificate_authority' => 'C:\nginx\cert\cert.pem' 
)); 

версия 3.X: -

$client = new DynamoDbClient([ 
    'region' => 'us-west-2', 
    'version' => 'latest', 
    'http' => [ 
     'verify' => 'C:\nginx\cert\cert.pem' 
    ] 
]); 

референс: -

https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/china/pdf/aws-sdk-php-guide.pdf

http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/configuration.html#verify