amazon-web-services - 通过 API 创建 AWS 安全组的问题
问题描述
AWS PHP SDK Version 3.188.1 - 2021-08-09
我有以下 PHP 代码:
require ..'/aws_sdk/aws-autoloader.php';
use Aws\Ec2\Ec2Client;
use Aws\Exception\AwsException;
$Ec2Client = Ec2Client('mykey', 'mysecretkey', '2016-11-15', 'us-east-1');
$params = [
'DryRun' => true,
'GroupName' => 'mygroupSG',
'Description' => 'My Security Group'
];
results = SecurityGroup($Ec2Client, $params);
function Ec2Client($access_Key, $SecretAccessKey, $version, $region)
{
try {
$ec2Client = new Aws\Ec2\Ec2Client([
'key' => $access_Key,
'secret' => $SecretAccessKey,
'version' => $version,
'region' => $region
]);
} catch (Ec2Exception $ex) {
die($ex->getMessage());
}
return $ec2Client;
}
function SecurityGroup($Ec2Client, $params)
{
try {
return $Ec2Client->createSecurityGroup($params);
} catch (Ec2Exception $ex) {
var_dump($ex);
die ($ex->getAwsErrorCode());
}
}
当我运行这段代码时,我收到以下错误
Fatal error: Uncaught exception 'Aws\Ec2\Exception\Ec2Exception' with message 'Error executing "CreateSecurityGroup" on "https://ec2.us-east-1.amazonaws.com"; AWS HTTP error: Client error: `POST https://ec2.us-east-1.amazonaws.com` resulted in a `400 Bad Request` response: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>MalformedQueryString</title> </head> </htm (truncated...) Unable to parse error information from response - Error parsing XML: String could not be parsed as XML' GuzzleHttp\Exception\ClientException: Client error: `POST https://ec2.us-east-1.amazonaws.com` resulted in a `400 Bad Request` response: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>MalformedQueryString</title> </head> </htm (truncated...) in /aws_sdk/GuzzleHttp/Exception/RequestException.php:113 Stack trace: #0 /aws_sdk/GuzzleHttp/Middleware.php(65): GuzzleHttp\Exception\RequestException in /aws_sdk/Aws/WrappedHttpHandler.php on line 195
我单独验证了 Ec2Client 已正确创建。我正在关注 AWS 文档中的示例,但这有点令人困惑,因为有多个示例使用不同的参数列表。有任何想法吗?
解决方案:
问题出在我的 .aws 目录中的凭证文件中。它的凭据不正确,因此我的身份验证不正确。但是创建 Ec2Client 时我没有收到错误消息。
解决方案
推荐阅读
- javascript - 如何让两个调用两个不同 ajax 库的脚本同时运行?
- accessibility - 树莓派 4 粘滞键
- reactjs - 如何修复 MongoParseError:不支持选项 usecreateindex?
- react-native - React Native - 可点击数字与可点击字母问题
- excel - 引用另一个工作表的条件格式在启用宏的工作表中不起作用
- node.js - 如何为流创建“缓存”或“存储桶”?
- verilog - Verilog 模拟中针对端口大小的意外警告
- c++ - 如何在 C++ 中多次重复一个整数
- python - 结合聚类条形图和多折线图
- c++ - 如果 std::vector
被重写为使用标准向量实现,这将如何破坏旧软件?