检查 DynamoDb 中是否存在表的最佳方法是什么?
如果代码是 PHP 语言,我将不胜感激。
要么活跃,要么不活跃。
*稍后作为错误代码 400 的各种情况的示例添加
检查表是否存在很容易,它可以有以下之一
表状态 => 创建、活动、删除或更新
但如果我收到错误 400,它可能意味着不止一件事。
1) 错误地发送了空字符串作为表名。
[x-aws-body] => {"表名":""}
)
[body] => CFSimpleXML Object
(
[__type] => com.amazon.coral.validate#ValidationException
[message] => The paramater 'tableName' must be at least 3 characters long and at most 255 characters long
)
[status] => 400
2) 发送到 DynamoDB 的命令中存在语法错误,例如写入 tabel_name 而不是 table_name。
[x-aws-body] => {"TableName":"test 7"} )
[body] => CFSimpleXML Object
(
[__type] => com.amazon.coral.validate#ValidationException
[message] => The paramater 'tableName' is required but was not present in the request
)
[status] => 400
3)我会猜测,但没有检查,是否同时超出了表上的预配置容量。
你可以看看“描述表官方 PHP SDK 的“。400 means "不存在” 官方文档中有一个相当广泛的示例。看看它在底部的“删除”示例中是如何使用的。
http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/LowLevelPHPTableOperationsExample.html http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/LowLevelPHPTableOperationsExample.html
这是文档中的(删除的)示例
<?php
require_once dirname(__FILE__) . '/sdk/sdk.class.php';
$dynamodb = new AmazonDynamoDB();
$table_name = 'ExampleTable';
$response = $dynamodb->describe_table(array('TableName' => $table_name));
if((integer) $response->status !== 400)
{
$error_type = $response->body->__type;
$error_code = explode('#', $error_type)[1];
if($error_code == 'ResourceNotFoundException')
{
echo "Table ".$table_name." exists.";
}
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)