AWS SDK for PHP 버전 3을 사용하여 Amazon SQS에서 대기열 사용
Amazon SQS 대기열에 대해 자세히 알아보려면 SQS 대기열의 작동 방식을 참조하세요.
다음 예제에서는 다음과 같은 작업을 하는 방법을 보여줍니다.
-
ListQueues를 사용하여 대기열의 목록을 반환합니다.
-
CreateQueue를 사용하여 새 대기열을 생성합니다.
-
GetQueueUrl을 사용하여 기존 대기열의 URL을 반환합니다.
-
DeleteQueue를 사용하여 지정된 대기열을 삭제합니다.
AWS SDK for PHP에 대한 모든 예제 코드는 GitHub
보안 인증 정보
예제 코드를 실행하기 전에 AWS SDK for PHP 버전 3을 사용하여 AWS로 인증에 설명된 대로 AWS 보안 인증을 구성합니다. 그 다음 AWS SDK for PHP 버전 3 설치에 설명된 AWS SDK for PHP를 가져옵니다.
대기열 목록 반환
가져옵니다.
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
샘플 코드
$client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->listQueues(); foreach ($result->get('QueueUrls') as $queueUrl) { echo "$queueUrl\n"; } } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
대기열 생성
가져옵니다.
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
샘플 코드
$queueName = "SQS_QUEUE_NAME"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->createQueue([ 'QueueName' => $queueName, 'Attributes' => [ 'DelaySeconds' => 5, 'MaximumMessageSize' => 4096, // 4 KB ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
대기열의 URL 반환
가져옵니다.
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
샘플 코드
$queueName = "SQS_QUEUE_NAME"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->getQueueUrl([ 'QueueName' => $queueName // REQUIRED ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
대기열 삭제
가져옵니다.
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
샘플 코드
$queueUrl = "SQS_QUEUE_URL"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->deleteQueue([ 'QueueUrl' => $queueUrl // REQUIRED ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }