Amazon SES从实例配置文件元数据服务器检索凭据时出错.(客户端错误:404)



我在让AWS SES按照下面的说明工作时遇到了一些问题;我想从我的网站向用户发送一封电子邮件。凭据似乎没有经过验证,但我使用了从IAM生成的正确凭据(我还尝试了服务器根密钥,但它给了我相同的错误)。我已经没有关于如何进一步解决/调试的想法了,所以任何指导都将不胜感激。

执行时收到错误:

从实例配置文件元数据服务器检索凭据时出错。(客户端错误:404)

采取的步骤

  1. 我已经设置SES并验证了电子邮件地址等

  2. 我创建了一个IAM配置文件,其中包含"完全访问SES"

  3. 我已经使用phar文件安装了AWS SDK for php

  4. 我已经在下面写了php代码,直接提供SES 的正确安全访问代码

require 'aws/aws.phar';
use AwsSesSesClient;
//More code here
$client = SesClient::factory(array(
    'key' => 'xxxxxxxxxxxxx',
    'secret' => 'xxxxxxxxxxx',
    'region' => 'us-west-2',
    'version' => '2010-12-01'
));
//code to build the $msg here as array
try{
     $result = $client->sendEmail($msg);
     //save the MessageId which can be used to track the request
     $msg_id = $result->get('MessageId');
     echo("MessageId: $msg_id");
     //view sample output
     print_r($result);
} catch (Exception $e) {
     echo($e->getMessage());
}
//view the original message passed to the SDK
print_r($msg);

提前感谢您的帮助-这永远是一个伟大的社区!!请让我知道我是否可以提供其他

John

您可以使用多种方法向SDK提供凭据。请参阅文档:为SDK提供凭据

1) 使用您创建的IAM配置文件中的值设置环境变量:AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION

2) 您也可以创建~/.aws/credentials文件,而不是1)。您可以在此处添加行:
[默认值]
aws_access_key_id=YOUR_aws_access_key_id
aws_secret_access_key=YOUR_aws_secret_access_key
aws_default_region=区域

1) 或者2)肯定会起作用,而且是直接的

3) 您也可以创建实例配置文件。您需要创建IAM角色和实例配置文件。您的实例在创建时需要分配实例配置文件。请参阅第183页(如页面底部所示。主题名称为"使用IAM角色向应用程序授予权限在亚马逊EC2实例上运行"):AWS IAM用户指南,了解步骤和过程。在这里,密钥和访问密钥是自动提取的,您不需要做任何事情。您只需要使用步骤1设置默认区域即可(即导出AWS_default_region=someregion)。

4) 你已经尝试了第四种方法,可能你的设置中有一些问题,我不知道。

相关内容

最新更新