Amazon web services 使用sdk for php访问dynamodb
当我尝试运行此代码时,它会给出一个错误,定义为: 致命错误:未捕获异常“Aws\DynamoDb\exception\dynamodbeexception”,消息“在“”上执行“GetItem”时出错”;AWS HTTP错误:cURL错误60:SSL证书问题:无法获取C:\wamp\www\practice\vendor\AWS\AWS sdk php\src\WrappedHttpHandler.php第159行中的本地颁发者证书(请参阅)Amazon web services 使用sdk for php访问dynamodb,amazon-web-services,amazon-dynamodb,fatal-error,Amazon Web Services,Amazon Dynamodb,Fatal Error,当我尝试运行此代码时,它会给出一个错误,定义为: 致命错误:未捕获异常“Aws\DynamoDb\exception\dynamodbeexception”,消息“在“”上执行“GetItem”时出错”;AWS HTTP错误:cURL错误60:SSL证书问题:无法获取C:\wamp\www\practice\vendor\AWS\AWS sdk php\src\WrappedHttpHandler.php第159行中的本地颁发者证书(请参阅) require "config.php"; requ
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;
从读取文档
<>得到了答案,而不是禁用SSL验证,这可能导致中间人攻击。下面的解决方案将更加安全和合适$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
]
]);
3.X版:-
$aws = Aws\Common\Aws::factory(array(
'region' => 'us-west-2',
'key' => '****',
'secret' => '****',
'ssl.certificate_authority' => 'C:\nginx\cert\cert.pem'
));
参考文献:-
$client = new DynamoDbClient([
'region' => 'us-west-2',
'version' => 'latest',
'http' => [
'verify' => 'C:\nginx\cert\cert.pem'
]
]);