AWS 环境变量提供商不接受凭据
AWS Environment variable provider not accepting credentials
我正在使用以下代码在本地连接 dynamoDb
$dotenv = new Dotenv\Dotenv(dirname(__DIR__, 2));
$dotenv->load();
$this->key = getenv('aws_access_key_id');
$this->secret = getenv('aws_secret_access_key');
$this->dynamodb = new DynamoDbClient([
'profile' => 'default',
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => $this->key,
'secret' => $this->secret,
]
]);
我的.env
文件
aws_access_key_id = ....
aws_secret_access_key = ....
我遇到了这个错误
Type: Aws\Exception\CredentialsException
Message: Cannot read credentials from /Users/user/.aws/credentials
File: /path/to/project/vendor/aws/aws-sdk-php/src/Credentials/CredentialProvider.php
Line: 394
也尝试了 access key
和 secret key
的基本硬编码,但它似乎并没有工作,而是每次从默认路径 ~/.aws/credentials
TIA
尝试打印环境变量以确保您的应用程序正在获取这些环境变量。
它没有从这些变量中找到它。您需要在 运行 此脚本之前导出它们。
希望对您有所帮助。
编辑 1:
use Aws\Common\Credentials\Credentials;
$credentials = new Credentials('YOUR_ACCESS_KEY', 'YOUR_SECRET_KEY');
//将这些凭据分配给 Dynamodbclient
EDIT2: AWS SDK 3.x 遵循不同的初始化方式。
$sdk = new Aws\Sdk([
'credentials' => $credentials,
'region' => 'us-east-1',
'version' => 'latest',
'DynamoDb' => [
'region' => 'us-west-2',
],
]);
$dynamodb = $sdk->createDynamoDb(); // This is dynamodb client
尝试不指定:
'profile' => 'default'
您想使用凭据文件中指定的默认配置文件。 SDK 可能会查看此行并尝试打开凭据文件并查找 default
配置文件。我没有安装 PHP SDK 来验证这一点..
我正在使用以下代码在本地连接 dynamoDb
$dotenv = new Dotenv\Dotenv(dirname(__DIR__, 2));
$dotenv->load();
$this->key = getenv('aws_access_key_id');
$this->secret = getenv('aws_secret_access_key');
$this->dynamodb = new DynamoDbClient([
'profile' => 'default',
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => $this->key,
'secret' => $this->secret,
]
]);
我的.env
文件
aws_access_key_id = ....
aws_secret_access_key = ....
我遇到了这个错误
Type: Aws\Exception\CredentialsException
Message: Cannot read credentials from /Users/user/.aws/credentials
File: /path/to/project/vendor/aws/aws-sdk-php/src/Credentials/CredentialProvider.php
Line: 394
也尝试了 access key
和 secret key
的基本硬编码,但它似乎并没有工作,而是每次从默认路径 ~/.aws/credentials
TIA
尝试打印环境变量以确保您的应用程序正在获取这些环境变量。
它没有从这些变量中找到它。您需要在 运行 此脚本之前导出它们。
希望对您有所帮助。
编辑 1:
use Aws\Common\Credentials\Credentials;
$credentials = new Credentials('YOUR_ACCESS_KEY', 'YOUR_SECRET_KEY');
//将这些凭据分配给 Dynamodbclient
EDIT2: AWS SDK 3.x 遵循不同的初始化方式。
$sdk = new Aws\Sdk([
'credentials' => $credentials,
'region' => 'us-east-1',
'version' => 'latest',
'DynamoDb' => [
'region' => 'us-west-2',
],
]);
$dynamodb = $sdk->createDynamoDb(); // This is dynamodb client
尝试不指定:
'profile' => 'default'
您想使用凭据文件中指定的默认配置文件。 SDK 可能会查看此行并尝试打开凭据文件并查找 default
配置文件。我没有安装 PHP SDK 来验证这一点..