【问题标题】:AWS-SDK Error retrieving credentials from the instance profile metadata serverAWS-SDK 从实例配置文件元数据服务器检索凭证时出错
【发布时间】:2018-04-18 05:58:56
【问题描述】:

最近我的网络服务器停止响应,原因是:

从实例配置文件元数据服务器检索凭据时出错

搜索此错误时,我发现了使用CredentialProvider 在本地缓存凭据的建议,这样服务器就不必为每个请求访问元数据服务器。但它们中的大多数都在 ENV 变量或文件中的凭据上下文中

我想问一下这是否也适用于 IAM 角色,如果适用,这段代码是否有意义?

        $s3 = S3Client::factory(array(
                         'region' => S3_REGION,
                         'version' => '2006-03-01',
                         'credentials' => CredentialProvider::memoize(CredentialProvider::defaultProvider())
         ));
        try {
            $response = $s3->putObject($option);
        } catch ( Exception $e ) {
            error_log(' couldn\'t set S3 cache for bucket: ' . $option['Bucket'] . ' ' . $e->getMessage());
            return false;
        }

所以我的问题是我应该在 IAM 角色的情况下使用 CredentialProvider 吗?

【问题讨论】:

    标签: amazon-web-services metadata credentials amazon-iam


    【解决方案1】:

    是的,您的代码很有意义,并且会有所改进。

    亚马逊将限制发往 169.254.169.254 的请求。这很可能是您的错误消息的来源。我不记得限制是什么,但建议缓存实例凭据。 memoize() 函数为您完成了这项工作。

    [编辑]

    亚马逊关于限制的评论。没有提到具体数字。

    我们在每个实例的基础上限制对实例元数据服务的查询,并限制从实例到实例元数据服务的同时连接数。

    Instance Metadata

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-06
      • 2017-11-25
      • 2021-12-27
      • 2016-02-01
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      • 2019-05-25
      相关资源
      最近更新 更多