AWS SDK for PHP 버전 3을 사용한 Amazon SNS에서의 주제 관리 - AWS SDK for PHP

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SDK for PHP 버전 3을 사용한 Amazon SNS에서의 주제 관리

Amazon Simple Queue Service (Amazon SQS), HTTP/HTTPS URL, 이메일, AWS SMS 또는 AWS Lambda에 알림을 보내려면 먼저 해당 주제의 구독자에 대한 메시지 전달을 관리하는 주제를 생성해야 합니다.

관찰자 설계 패턴 측면에서 주제는 제목과 같습니다. 주제를 생성한 후 주제에 메시지가 게시되면 자동으로 알림을 받을 구독자를 추가합니다.

AWS SDK for PHP 버전 3으로 Amazon SNS에서 구독 관리에서 주제 구독에 대해 자세히 알아보세요.

다음 예제에서는 다음과 같은 작업을 하는 방법을 보여줍니다.

  • 사용에 대한 알림을 게시할 주제를 생성합니다 CreateTopic.

  • 를 사용하여 ListTopics요청자의 주제 목록을 반환합니다.

  • 를 사용하여 주제 및 모든 구독을 삭제합니다. DeleteTopic

  • 를 사용하여 GetTopicAttributes주제의 모든 속성을 반환합니다.

  • 주제 소유자가 를 사용하여 주제 속성을 새 값으로 설정할 수 있도록 허용합니다 SetTopicAttributes.

Amazon SNS 사용에 대한 자세한 내용은 메시지 전송 상태를 위한 Amazon SNS 주제 속성을 참조하세요.

의 모든 예제 코드는 여기에서 확인할 수 GitHub 있습니다. AWS SDK for PHP

보안 인증 정보

예제 코드를 실행하기 전에 보안 인증에 설명된 대로 AWS 보안 인증을 구성합니다. 그 다음 기본 사용법에 설명된 대로 AWS SDK for PHP를 가져옵니다.

주제 생성

주제를 만들려면 CreateTopic작업을 사용합니다.

AWS 계정 계정의 각 주제 이름은 고유해야 합니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

샘플 코드

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $topicname = 'myTopic'; try { $result = $SnSclient->createTopic([ 'Name' => $topicname, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

주제 나열

현재 AWS 지역의 기존 주제를 최대 100개까지 나열하려면 ListTopics작업을 사용하십시오.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

샘플 코드

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->listTopics(); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

주제 삭제

기존 주제 및 모든 구독을 제거하려면 DeleteTopic작업을 사용하십시오.

구독자에게 아직 전송되지 않은 메시지도 삭제됩니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

샘플 코드

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->deleteTopic([ 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

주제 속성 가져오기

기존 주제 하나의 속성을 검색하려면 GetTopicAttributes작업을 사용합니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

샘플 코드

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->getTopicAttributes([ 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

주제 속성 설정

단일 기존 주제의 속성을 업데이트하려면 SetTopicAttributes작업을 사용하십시오.

Policy, DisplayNameDeliveryPolicy 속성만 설정할 수 있습니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

샘플 코드

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $attribute = 'Policy | DisplayName | DeliveryPolicy'; $value = 'First Topic'; $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->setTopicAttributes([ 'AttributeName' => $attribute, 'AttributeValue' => $value, 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }