我对PHP的经验很少,所以请容忍我。我试图按照AWS文档示例来确认我可以使用AWS连接到AWS,但是我得到了stuck...and --这肯定是我正在做的蠢事。下面是我的php文件(称为stuff.php):
<?php
header('Content-Type: text/plain; charset=utf-8');
require '/home/ubuntu/vendor/autoload.php';
// Create the queue using the AWS-PHP-SDK function, create_queue, and store it
// in the '$newqueue' variable.
$newqueue = $sqs->create_queue($queuename);
// Print the created queue results.
echo '<br></br><h2>CREATE QUEUE</h2>';
print '<pre>' . print_r($newqueue, true) . '<pre><br/><br/>';
?>它基本上是从AWS文档复制的,并更新了require。我使用以下格式创建了一个~/..aws/凭据文件:
[default]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY但是,当我在浏览器中加载文件时,Apache2 error.log会向我发送以下内容:
[Mon Dec 15 20:46:26.460172 2014] [:error] [pid 2625] [client 10.0.3.1:48211] PHP Notice: Undefined variable: sqs in /var/www/html/stuff.php on line 7
[Mon Dec 15 20:46:26.460203 2014] [:error] [pid 2625] [client 10.0.3.1:48211] PHP Fatal error: Call to a member function create_queue() on a non-object in /var/www/html/stuff.php on line 7我假设$sqs会有一个从SDK中分配的预设值,但是也许我应该手动分配一些东西:我不知道那可能是什么。谢谢,
发布于 2014-12-16 19:59:17
根据AWS PHP文档的最新版本,您需要使用提供的工厂方法创建一个SqsClient对象实例,然后您将能够创建SQS队列、从它们接收/发送消息等等。
下载AWS PHP的最新ZIP版本,将其解压缩到目录项目中,并使用以下脚本创建并发送一条使用script的消息。注:请记住将真正的相对路径放置到aws-autoloader文件和正确的AWS凭据。
<?php
require './relative/path/to/aws-autoloader.php';
use Aws\Sqs\SqsClient;
use Aws\Common\Credentials\Credentials;
$credentials = new Credentials('YOUR_ACCESS_KEY', 'YOUR_SECRET_KEY');
// Instantiate the SQS client with your AWS credentials
$client = SqsClient::factory(array(
'credentials' => $credentials,
'region' => '<region name>'
));
$result = $client->createQueue(array('QueueName' => 'my-queue'));
$queueUrl = $result->get('QueueUrl');
echo "SQS queue url: $queueUrl";
$client->sendMessage(array(
'QueueUrl' => $queueUrl,
'MessageBody' => 'Hello World!',
));https://stackoverflow.com/questions/27507775
复制相似问题