首页 > 解决方案 > 凭证必须是带有 SQS 的 PHP SDK 上的 Aws\\Credentials\\CredentialsInterface 错误的实例

问题描述

我正在尝试SQS使用 php SDK 从 AWS 中删除一条消息。我有以下配置。

$sqsClient = new SqsClient([
            'version' => '2012-11-05',
            'region'  => 'us-east-1',
            'credentials' => [
                'key' => KEY,
                'secret' => SECRET
            ]
        ]);

然后我试图删除如下:

$sqsClient->deleteMessage([
                'QueueUrl' => quque-url
                'ReceiptHandle' => handle
            ]);

我在初始化时收到以下错误:

Credentials must be an instance of Aws\\Credentials\\CredentialsInterface, an associative array that contains \"key\", \"secret\", and an optional \"token\" key-value pairs, a credentials provider function, or false."

我使用的凭据是正确的。在我没有通过配置之前,同样的错误也出现了。如何解决这个问题?

标签: phpamazon-web-servicesamazon-sqsaws-php-sdk

解决方案


我找到了这个代码示例,我认为您的代码是正确的。

如何创建实例Credentials

您可以使用这些代码来启动实例。

$credentials = new Aws\Credentials\Credentials(KEY, SECRET);
$sqsClient = new SqsClient([
            'version' => '2012-11-05',
            'region'  => 'us-east-1',
            'credentials' => $credentials
        ]);

检查这个文件

出于安全原因,我建议您最好使用凭据文件或设置环境变量。

我希望一切都好。


推荐阅读