Amazon SQS, Amazon SNS 및 Tools for Windows PowerShell - AWS Tools for PowerShell (버전 5 미리 보기)

AWS Tools for PowerShell 버전 5(V5)는 미리 보기 상태이므로이 콘텐츠는 변경될 수 있습니다. 변경 사항, 설치 및 마이그레이션 중단에 대한 자세한 내용은 마이그레이션 주제를 참조하세요. 릴리스된 콘텐츠는 버전 4 사용 설명서를 참조하세요.

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

Amazon SQS, Amazon SNS 및 Tools for Windows PowerShell

이 단원에서는 다음 작업을 수행하는 방법을 보여 주는 예제를 제공합니다.

  • Amazon SQS 대기열을 생성하고 대기열 Amazon 리소스 이름(ARN)을 가져옵니다.

  • Amazon SNS 주제를 생성합니다.

  • 대기열에 메시지를 보낼 수 있도록 SNS 주제에 권한을 부여합니다.

  • SNS 주제에 대한 대기열을 구독합니다.

  • IAM 사용자 또는 AWS 계정에 SNS 주제에 게시하고 SQS 대기열에서 메시지를 읽을 수 있는 권한을 부여합니다.

  • 주제에 대한 메시지를 게시하고 대기열에서 메시지를 읽어 결과를 확인합니다.

Amazon SQS 대기열 생성 및 대기열 ARN 가져오기

다음 명령은 기본 리전에 SQS 대기열을 생성합니다. 새 대기열의 URL이 출력에 표시됩니다.

PS > New-SQSQueue -QueueName myQueue https://sqs.us-west-2.amazonaws.com/123456789012/myQueue

다음 명령은 대기열의 ARN을 검색합니다.

PS > Get-SQSQueueAttribute -QueueUrl https://sqs.us-west-2.amazonaws.com/123456789012/myQueue -AttributeName QueueArn ... QueueARN : arn:aws:sqs:us-west-2:123456789012:myQueue ...

Amazon SNS 주제 생성

다음 명령은 기본 리전에서 SNS 주제를 생성하고 새 주제의 ARN을 반환합니다.

PS > New-SNSTopic -Name myTopic arn:aws:sns:us-west-2:123456789012:myTopic

SNS 주제에 권한 부여

다음 예제 스크립트는 SQS 대기열과 SNS 주제를 모두 생성하고, SQS 대기열로 메시지를 보낼 수 있도록 SNS 주제에 대한 권한을 부여합니다.

# create the queue and topic to be associated $qurl = New-SQSQueue -QueueName "myQueue" $topicarn = New-SNSTopic -Name "myTopic" # get the queue ARN to inject into the policy; it will be returned # in the output's QueueARN member but we need to put it into a variable # so text expansion in the policy string takes effect $qarn = (Get-SQSQueueAttribute -QueueUrl $qurl -AttributeNames "QueueArn").QueueARN # construct the policy and inject arns $policy = @" { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": "*", "Action": "SQS:SendMessage", "Resource": "$qarn", "Condition": { "ArnEquals": { "aws:SourceArn": "$topicarn" } } } } "@ # set the policy Set-SQSQueueAttribute -QueueUrl $qurl -Attribute @{ Policy=$policy }

SNS 주제에 대한 대기열을 구독합니다.

다음 명령은 SNS 주제 myTopic에 대한 대기열 myQueue를 구독하고 구독 ID를 반환합니다.

PS > Connect-SNSNotification ` -TopicARN arn:aws:sns:us-west-2:123456789012:myTopic ` -Protocol SQS ` -Endpoint arn:aws:sqs:us-west-2:123456789012:myQueue arn:aws:sns:us-west-2:123456789012:myTopic:f8ff77c6-e719-4d70-8e5c-a54d41feb754

권한 부여

다음 명령은 myTopic 주제에 대한 sns:Publish 작업을 수행할 수 있는 권한을 부여합니다.

PS > Add-SNSPermission ` -TopicArn arn:aws:sns:us-west-2:123456789012:myTopic ` -Label ps-cmdlet-topic ` -AWSAccountIds 123456789012 ` -ActionNames publish

다음 명령은 대기열 myQueue에 대한 sqs:ReceiveMessagesqs:DeleteMessage 작업을 수행할 수 있는 권한을 부여합니다.

PS > Add-SQSPermission ` -QueueUrl https://sqs.us-west-2.amazonaws.com/123456789012/myQueue ` -AWSAccountId "123456789012" ` -Label queue-permission ` -ActionName SendMessage, ReceiveMessage

결과 확인

다음 명령은 SNS 주제 myTopic에 메시지를 게시하여 새 대기열 및 주제를 테스트하고 MessageId를 반환합니다.

PS > Publish-SNSMessage ` -TopicArn arn:aws:sns:us-west-2:123456789012:myTopic ` -Message "Have A Nice Day!" 728180b6-f62b-49d5-b4d3-3824bb2e77f4

다음 명령은 SQS 대기열 myQueue에서 메시지를 검색하여 표시합니다.

PS > Receive-SQSMessage -QueueUrl https://sqs.us-west-2.amazonaws.com/123456789012/myQueue Attributes : {} Body : { "Type" : "Notification", "MessageId" : "491c687d-b78d-5c48-b7a0-3d8d769ee91b", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:myTopic", "Message" : "Have A Nice Day!", "Timestamp" : "2019-09-09T21:06:27.201Z", "SignatureVersion" : "1", "Signature" : "llE17A2+XOuJZnw3TlgcXz4C4KPLXZxbxoEMIirelhl3u/oxkWmz5+9tJKFMns1ZOqQvKxk+ExfEZcD5yWt6biVuBb8pyRmZ1bO3hUENl3ayv2WQiQT1vpLpM7VEQN5m+hLIiPFcs vyuGkJReV7lOJWPHnCN+qTE2lId2RPkFOeGtLGawTsSPTWEvJdDbLlf7E0zZ0q1niXTUtpsZ8Swx01X3QO6u9i9qBFt0ekJFZNJp6Avu05hIklb4yoRs1IkbLVNBK/y0a8Yl9lWp7a7EoWaBn0zhCESe7o kZC6ncBJWphX7KCGVYD0qhVf/5VDgBuv9w8T+higJyvr3WbaSvg==", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-6aad65c2f9911b05cd53efda11f913f9.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:myTopic:22b77de7-a216-4000-9a23-bf465744ca84" } MD5OfBody : 5b5ee4f073e9c618eda3718b594fa257 MD5OfMessageAttributes : MessageAttributes : {} MessageId : 728180b6-f62b-49d5-b4d3-3824bb2e77f4 ReceiptHandle : AQEB2vvk1e5cOKFjeIWJticabkc664yuDEjhucnIOqdVUmie7bX7GiJbl7F0enABUgaI2XjEcNPxixhVc/wfsAJZLNHnl8SlbQa0R/kD+Saqa4OIvfj8x3M4Oh1yM1cVKpYmhAzsYrAwAD5g5FvxNBD6zs +HmXdkax2Wd+9AxrHlQZV5ur1MoByKWWbDbsqoYJTJquCclOgWIak/sBx/daBRMTiVQ4GHsrQWMVHtNC14q7Jy/0L2dkmb4dzJfJq0VbFSX1G+u/lrSLpgae+Dfux646y8yFiPFzY4ua4mCF/SVUn63Spy sHN12776axknhg3j9K/Xwj54DixdsegnrKoLx+ctI+0jzAetBR66Q1VhIoJAq7s0a2MseyOeM/Jjucg6Sr9VUnTWVhV8ErXmotoiEg==