Laravel 5.1 AWS SDK proper credentials setup: exception 'Aws\\Exception\\CredentialsException'

匿名 (未验证) 提交于 2019-12-03 08:30:34

问题:

I am working on a Laravel 5.1 App Using this package:

"aws/aws-sdk-php-laravel": "~3.0" 

I am trying to properly setup a local environment and a production environment. I keep getting this error when trying to send mail on production server: (My .env file is gitignored and only exists locally)

production.ERROR: exception 'Aws\Exception\CredentialsException' with message 'Error retrieving credentials from the instance profile metadata server.  

Ran

php artisan vendor:publish 

My .env file look slike so, only with the keys:

APP_ENV=local APP_DEBUG=true APP_KEY=  DB_HOST=localhost DB_DATABASE= DB_USERNAME= DB_PASSWORD=  CACHE_DRIVER=file SESSION_DRIVER=database QUEUE_DRIVER=sync  MAIL_DRIVER=ses MAIL_HOST=email-smtp.us-west-2.amazonaws.com MAIL_PORT=587 MAIL_USERNAME= MAIL_PASSWORD= MAIL_ENCRYPTION=null  AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_REGION=us-west-2 

My credential are here config/aws.php

<?php  return [  /* |-------------------------------------------------------------------------- | AWS SDK Configuration |-------------------------------------------------------------------------- | | The configuration options set in this file will be passed directly to the | `Aws\Sdk` object, from which all client objects are created. The minimum | required options are declared here, but the full set of possible options | are documented at: | http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/configuration.html | */ 'credentials' => [     'key'    => env('AWS_ACCESS_KEY_ID','SECRETKEY'),     'secret' => env('AWS_SECRET_ACCESS_KEY','SECRETKEY'), ], 'region' => env('AWS_REGION', 'us-west-2'), 'version' => 'latest',  ]; 

My config/Mail.php looks like this only with keys and email address.

<?php  return [  /* |-------------------------------------------------------------------------- | Mail Driver |-------------------------------------------------------------------------- | | Laravel supports both SMTP and PHP's "mail" function as drivers for the | sending of e-mail. You may specify which one you're using throughout | your application here. By default, Laravel is setup for SMTP mail. | | Supported: "smtp", "mail", "sendmail", "mailgun", "mandrill", "ses", "log" | */  'driver' => env('MAIL_DRIVER', 'ses'),  /* |-------------------------------------------------------------------------- | SMTP Host Address |-------------------------------------------------------------------------- | | Here you may provide the host address of the SMTP server used by your | applications. A default option is provided that is compatible with | the Mailgun mail service which will provide reliable deliveries. | */  'host' => env('MAIL_HOST', ''),  /* |-------------------------------------------------------------------------- | SMTP Host Port |-------------------------------------------------------------------------- | | This is the SMTP port used by your application to deliver e-mails to | users of the application. Like the host we have set this value to | stay compatible with the Mailgun e-mail application by default. | */  'port' => env('MAIL_PORT', 587),  /* |-------------------------------------------------------------------------- | Global "From" Address |-------------------------------------------------------------------------- | | You may wish for all e-mails sent by your application to be sent from | the same address. Here, you may specify a name and address that is | used globally for all e-mails that are sent by your application. | */  'from' => ['address' => '', 'name' => ''],  /* |-------------------------------------------------------------------------- | E-Mail Encryption Protocol |-------------------------------------------------------------------------- | | Here you may specify the encryption protocol that should be used when | the application send e-mail messages. A sensible default using the | transport layer security protocol should provide great security. | */  'encryption' => env('MAIL_ENCRYPTION', 'tls'),  /* |-------------------------------------------------------------------------- | SMTP Server Username |-------------------------------------------------------------------------- | | If your SMTP server requires a username for authentication, you should | set it here. This will get used to authenticate with your server on | connection. You may also set the "password" value below this one. | */  'username' => env('MAIL_USERNAME', ''), /* |-------------------------------------------------------------------------- | SMTP Server Password |-------------------------------------------------------------------------- | | Here you may set the password required by your SMTP server to send out | messages from your application. This will be given to the server on | connection so that the application will be able to send messages. | */  'password' => env('MAIL_PASSWORD','' ),  /* |-------------------------------------------------------------------------- | Sendmail System Path |-------------------------------------------------------------------------- | | When using the "sendmail" driver to send e-mails, we will need to know | the path to where Sendmail lives on this server. A default path has | been provided here, which will work well on most of your systems. | */  'sendmail' => '/usr/sbin/sendmail -bs',  /* |-------------------------------------------------------------------------- | Mail "Pretend" |-------------------------------------------------------------------------- | | When this option is enabled, e-mail will not actually be sent over the | web and will instead be written to your application's logs files so | you may inspect the message. This is great for local development. | */  'pretend' => false,  ]; 

回答1:

Verify that your config/services.php configuration file contains the following options:

'ses' => [     'key' => 'your-ses-key',     'secret' => 'your-ses-secret',     'region' => 'ses-region',  // e.g. us-east-1 ], 

not the config/aws.php



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!