2015-10-31 33 views
2

上面有一些問題讓AWS SES正常工作;我想從我的網站發送電子郵件給用戶。看起來證書沒有被驗證,但是我使用了從IAM生成的正確證書(我也嘗試了服務器根密鑰,它給了我相同的錯誤)。我已經用完了關於如何解決/進一步調試的想法,所以任何指導都將不勝感激。Amazon SES從實例配置文件元數據服務器檢索憑據時出錯。 (客戶端錯誤:404)

錯誤接收上執行:從實例配置文件元數據服務器

錯誤檢索憑證。 (客戶端錯誤:404)

所採取的步驟

  1. 我已經安裝SES和驗證

  2. 我創建了一個帶有IAM輪廓 '完全接入到SES'

  3. 的電子郵件地址等
  4. 我已經使用phar文件安裝了適用於php的AWS開發工具包

  5. 我已經在下面編寫了php代碼providin G的SES

require 'aws/aws.phar'; 
use Aws\Ses\SesClient; 

//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); 

感謝您的幫助提前直接正確的安全訪問代碼 - 這始終是一個偉大的社會!請讓我知道如果我可以提供別的

約翰

回答

1

可以提供使用多種方法憑據你的SDK。請參閱文檔: Providing Credentials to SDK

1)設置環境變量:AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_DEFAULT_REGION從IAM配置文件,你創造的價值。

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角色嚮應用程序授予權限 Amazon EC2實例」),以瞭解步驟和過程。在這裏,密鑰和訪問密鑰會自動提取,您不必執行任何操作。您只需使用步驟1)設置默認區域(即導出AWS_DEFAULT_REGION = someregion)。

4)您已經嘗試了第四種方法,可能是您的設置中存在一些我不知道的問題。

+0

嗨斯里 - 非常感謝這個結構良好的答案。我用我的根密鑰使用最簡單的方法1,並且仍然收到錯誤。我在想 - 這可能是因爲我使用的是舊版本的SDK,因爲我使用的是phar文件而不是composer。我已經用composer重新安裝了SDK,但是現在出現這個錯誤:「Warning:include_once(/home/ec2-user/vendor/autoload.php):無法打開流:/ var/www /」中的權限被拒絕 - 「 - 任何想法如何解決 - 我認爲這是由於Apache訪問根文件夾,但我不確定..再次感謝您的幫助 – John

+0

你試過這個:http://stackoverflow.com/questions/1484595/how-to -resolve-VAR WWW的拷貝寫入權限被拒絕 – phoenix

相關問題