适用于 PHP 的 SDK 中的 instanceProfile 提供程序
Aws\Credentials\CredentialProvider::instanceProfile 尝试为 Amazon EC2 实例配置文件中指定的 IAM 角色加载凭证。
use Aws\Credentials\CredentialProvider; use Aws\S3\S3Client; $provider = CredentialProvider::instanceProfile(); // Be sure to memoize the credentials $memoizedProvider = CredentialProvider::memoize($provider); $client = new S3Client([ 'region' => 'us-west-2', 'version' => '2006-03-01', 'credentials' => $memoizedProvider ]);
默认情况下,提供商最多重新尝试提取凭证三次。可以使用 retries 选项设置重试次数,如以下代码所示,将该选项设置为 0 可以完全禁用重试。
use Aws\Credentials\CredentialProvider; $provider = CredentialProvider::instanceProfile([ 'retries' => 0 ]); $memoizedProvider = CredentialProvider::memoize($provider);
如果环境变量 AWS_METADATA_SERVICE_NUM_ATTEMPTS 可用,则其值优先于前面显示的“重试”选项。
注意
可以通过将 AWS_EC2_METADATA_DISABLED 环境变量设置为 true 来禁用从 Amazon EC2 实例配置文件进行加载的尝试。