当前位置: 首页 > 知识库问答 >
问题:

无法从我的EC2实例中提取SQS消息

廖鸿达
2023-03-14

当我将应用程序部署到EC2实例时,它无法从SQS队列中获取消息。并抛出状态代码为403禁止的异常,则对资源{sqs队列}的访问被拒绝。但是,当我从本地环境运行相同的代码时,我的应用程序可以从SQS队列中获取消息。

我的应用程序使用symfony框架,并将预先配置的AWS凭据从parameters.yml传递到\AWS\sqs\sqsclient()中,供有权访问此队列的用户使用。

 $sqs = new \Aws\Sqs\SqsClient([
        [
            'key' => '{my key}',
            'secret' => '{my secret}'
        ],
        'region' => 'us-east-1',
        'version' => 'latest'
    ]);

    $response = $sqs->receiveMessage([
        'QueueUrl' => 'https://sqs.us-east-1.amazonaws.com/{my account}/{my queue}'
    ]);

有人对这里可能发生的事情有什么建议吗?

共有1个答案

苏磊
2023-03-14

尝试在配置中使用credentials键。

$sqs = new \Aws\Sqs\SqsClient([
    'credentials' => [
            'key'    => '{my key}',
            'secret' => '{my secret}',
        ],
        'region' => 'us-east-1',
        'version' => 'latest'
    ]);

    $response = $sqs->receiveMessage([
        'QueueUrl' => 'https://sqs.us-east-1.amazonaws.com/{my accoun}/{my queue}'
    ]);
 类似资料:
  • 我编写了一个非常简单的spring boot应用程序,并将其打包在Docker中。 docker文件的内容是: 我把它推到了docker hub。 我在aws上创建了一个新的EC2实例。然后我连接到它并键入以下命令: 最后一个命令在屏幕上给出了许多消息,表示spring boot应用程序正在运行。 看起来很棒。但是,当我打开浏览器并键入:http://ec2-54-86-87-68.compute

  • 问题内容: 我正在尝试从EC2实例i-78a8df00连接到RDS实例mysql。**。us- east-1.rds.amazonaws.com。他们俩都在美国东部地区。我将EC2实例的安全组(sg- **)添加到RDS安全组,但这无济于事。这似乎是防火墙/ DNS问题,因为运行此命令时超时: 错误2003(HY000):无法连接到“ mysql。**。us- east-1.rds.amazona

  • 从EC2实例i-78a8df00中,我正在尝试连接到RDS实例他们都在美国东部地区。我将EC2实例的安全组(SG-*********)添加到RDS安全组中,但这没有帮助。运行此命令时超时,可能是防火墙/DNS问题: 错误2003(HY000):无法连接到“ 我可以从我的本地机器使用与上面相同的线路连接到RDS实例。我尝试了各种论坛解决方案,但那些都没有帮助。

  • 我正在一个盒子上运行redis 2.8.7。从其他框(两者都是aws ec2)我正在发出这个命令 redis-cli -h ,但我得到这个错误 无法连接到Redis:6379:连接被拒绝 框1上的端口6379为框2打开。此外,没有redis的id/pwd

  • 网络:我有一个私有子网和一个公共子网。附有IG的VPC。公共子网中有一个NAT网关。我还有2个路由表,公共路由表将所有内容路由到IG,私有路由表将所有内容路由到NAT网关。 EC2:我的EC2 Windows实例位于带有EIP和公共DNS的私有子网中。它有一个安全组,允许所有来自互联网的入站/出站,但我甚至不能ping两个rdp