AWS Doc SDK ExamplesWord
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Tools for PowerShell를 사용한 Amazon SQS 예제
다음 코드 예제에서는 Amazon SQS AWS Tools for PowerShell 와 함께를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.
각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.
주제
작업
다음 코드 예시에서는 Add-SQSPermission
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 지정된가 지정된 대기열에서 메시지를 AWS 계정 보낼 수 있도록 허용합니다.
Add-SQSPermission -Action SendMessage -AWSAccountId 80398EXAMPLE -Label SendMessagesFromMyQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 AddPermission를 참조하세요.
-
다음 코드 예시에서는 Clear-SQSQueue
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제는 지정된 대기열에서 모든 메시지를 삭제합니다.
Clear-SQSQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 PurgeQueue를 참조하세요.
-
다음 코드 예시에서는 Edit-SQSMessageVisibility
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 지정된 대기열에 지정된 수신 핸들이 있는 메시지의 가시성 제한 시간을 10시간(10시간 * 60분 * 60초 = 36,000초)으로 변경합니다.
Edit-SQSMessageVisibility -QueueUrl https://sqs.us-east-1.amazonaws.com/8039EXAMPLE/MyQueue -ReceiptHandle AQEBgGDh...J/Iqww== -VisibilityTimeout 36000
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 ChangeMessageVisibility를 참조하세요.
-
다음 코드 예시에서는 Edit-SQSMessageVisibilityBatch
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제는 지정된 대기열에 지정된 수신 핸들이 있는 2개의 메시지에 대한 가시성 제한 시간을 변경합니다. 첫 번째 메시지의 가시성 제한 시간이 10시간(10시간 * 60분 * 60초 = 36,000초)으로 변경됩니다. 두 번째 메시지의 가시성 제한 시간이 5시간(5시간 * 60분 * 60초 = 18,000초)으로 변경됩니다.
$changeVisibilityRequest1 = New-Object Amazon.SQS.Model.ChangeMessageVisibilityBatchRequestEntry $changeVisibilityRequest1.Id = "Request1" $changeVisibilityRequest1.ReceiptHandle = "AQEBd329...v6gl8Q==" $changeVisibilityRequest1.VisibilityTimeout = 36000 $changeVisibilityRequest2 = New-Object Amazon.SQS.Model.ChangeMessageVisibilityBatchRequestEntry $changeVisibilityRequest2.Id = "Request2" $changeVisibilityRequest2.ReceiptHandle = "AQEBgGDh...J/Iqww==" $changeVisibilityRequest2.VisibilityTimeout = 18000 Edit-SQSMessageVisibilityBatch -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue -Entry $changeVisibilityRequest1, $changeVisibilityRequest2
출력:
Failed Successful ------ ---------- {} {Request2, Request1}
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 ChangeMessageVisibilityBatch를 참조하세요.
-
다음 코드 예시에서는 Get-SQSDeadLetterSourceQueue
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 지정된 대기열을 데드레터 대기열로 사용하는 모든 대기열의 URLs를 나열합니다.
Get-SQSDeadLetterSourceQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue
출력:
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyOtherQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 ListDeadLetterSourceQueues를 참조하세요.
-
다음 코드 예시에서는 Get-SQSQueue
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 모든 대기열을 나열합니다.
Get-SQSQueue
출력:
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/AnotherQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/DeadLetterQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyOtherQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue
예제 2:이 예제에서는 지정된 이름으로 시작하는 대기열을 나열합니다.
Get-SQSQueue -QueueNamePrefix My
출력:
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyOtherQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 ListQueues를 참조하세요.
-
다음 코드 예시에서는 Get-SQSQueueAttribute
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 지정된 대기열에 대한 모든 속성을 나열합니다.
Get-SQSQueueAttribute -AttributeName All -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
출력:
VisibilityTimeout : 30 DelaySeconds : 0 MaximumMessageSize : 262144 MessageRetentionPeriod : 345600 ApproximateNumberOfMessages : 0 ApproximateNumberOfMessagesNotVisible : 0 ApproximateNumberOfMessagesDelayed : 0 CreatedTimestamp : 2/11/2015 5:53:35 PM LastModifiedTimestamp : 12/29/2015 2:23:17 PM QueueARN : arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue Policy : {"Version":"2008-10-17","Id":"arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue/SQSDefaultPolicy","Statement":[{"Sid":"Sid14 495134224EX","Effect":"Allow","Principal":{"AWS":"*"},"Action":"SQS:SendMessage","Resource":"arn:aws:sqs:us-east-1:80 398EXAMPLE:MyQueue","Condition":{"ArnEquals":{"aws:SourceArn":"arn:aws:sns:us-east-1:80398EXAMPLE:MyTopic"}}},{"Sid": "SendMessagesFromMyQueue","Effect":"Allow","Principal":{"AWS":"80398EXAMPLE"},"Action":"SQS:SendMessage","Resource":" arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue"}]} Attributes : {[QueueArn, arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue], [ApproximateNumberOfMessages, 0], [ApproximateNumberOfMessagesNotVisible, 0], [ApproximateNumberOfMessagesDelayed, 0]...}
예제 2:이 예제에서는 지정된 대기열에 대해 지정된 속성만 별도로 나열합니다.
Get-SQSQueueAttribute -AttributeName MaximumMessageSize, VisibilityTimeout -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
출력:
VisibilityTimeout : 30 DelaySeconds : 0 MaximumMessageSize : 262144 MessageRetentionPeriod : 345600 ApproximateNumberOfMessages : 0 ApproximateNumberOfMessagesNotVisible : 0 ApproximateNumberOfMessagesDelayed : 0 CreatedTimestamp : 2/11/2015 5:53:35 PM LastModifiedTimestamp : 12/29/2015 2:23:17 PM QueueARN : arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue Policy : {"Version":"2008-10-17","Id":"arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue/SQSDefaultPolicy","Statement":[{"Sid":"Sid14 495134224EX","Effect":"Allow","Principal":{"AWS":"*"},"Action":"SQS:SendMessage","Resource":"arn:aws:sqs:us-east-1:80 398EXAMPLE:MyQueue","Condition":{"ArnEquals":{"aws:SourceArn":"arn:aws:sns:us-east-1:80398EXAMPLE:MyTopic"}}},{"Sid": "SendMessagesFromMyQueue","Effect":"Allow","Principal":{"AWS":"80398EXAMPLE"},"Action":"SQS:SendMessage","Resource":" arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue"}]} Attributes : {[MaximumMessageSize, 262144], [VisibilityTimeout, 30]}
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 GetQueueAttributes를 참조하세요.
-
다음 코드 예시에서는 Get-SQSQueueUrl
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 지정된 이름을 가진 대기열의 URL를 나열합니다.
Get-SQSQueueUrl -QueueName MyQueue
출력:
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 GetQueueUrl를 참조하세요.
-
다음 코드 예시에서는 New-SQSQueue
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제는 지정된 이름으로 대기열을 생성합니다.
New-SQSQueue -QueueName MyQueue
출력:
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 CreateQueue를 참조하세요.
-
다음 코드 예시에서는 Receive-SQSMessage
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 지정된 대기열에 대해 수신할 다음 10개의 메시지에 대한 정보를 나열합니다. 지정된 메시지 속성이 있는 경우 해당 속성에 대한 값이 정보에 포함됩니다.
Receive-SQSMessage -AttributeName SenderId, SentTimestamp -MessageAttributeName StudentName, StudentGrade -MessageCount 10 -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
출력:
Attributes : {[SenderId, AIDAIAZKMSNQ7TEXAMPLE], [SentTimestamp, 1451495923744]} Body : Information about John Doe's grade. MD5OfBody : ea572796e3c231f974fe75d89EXAMPLE MD5OfMessageAttributes : 48c1ee811f0fe7c4e88fbe0f5EXAMPLE MessageAttributes : {[StudentGrade, Amazon.SQS.Model.MessageAttributeValue], [StudentName, Amazon.SQS.Model.MessageAttributeValue]} MessageId : 53828c4b-631b-469b-8833-c093cEXAMPLE ReceiptHandle : AQEBpfGp...20Q5cg==
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 ReceiveMessage를 참조하세요.
-
다음 코드 예시에서는 Remove-SQSMessage
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제는 지정된 대기열에서 지정된 수신 핸들이 있는 메시지를 삭제합니다.
Remove-SQSMessage -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue -ReceiptHandle AQEBd329...v6gl8Q==
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 DeleteMessage를 참조하세요.
-
다음 코드 예시에서는 Remove-SQSMessageBatch
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제는 지정된 대기열에서 지정된 수신 핸들이 있는 메시지 2개를 삭제합니다.
$deleteMessageRequest1 = New-Object Amazon.SQS.Model.DeleteMessageBatchRequestEntry $deleteMessageRequest1.Id = "Request1" $deleteMessageRequest1.ReceiptHandle = "AQEBX2g4...wtJSQg==" $deleteMessageRequest2 = New-Object Amazon.SQS.Model.DeleteMessageBatchRequestEntry $deleteMessageRequest2.Id = "Request2" $deleteMessageRequest2.ReceiptHandle = "AQEBqOVY...KTsLYg==" Remove-SQSMessageBatch -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue -Entry $deleteMessageRequest1, $deleteMessageRequest2
출력:
Failed Successful ------ ---------- {} {Request1, Request2}
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 DeleteMessageBatch를 참조하세요.
-
다음 코드 예시에서는 Remove-SQSPermission
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제는 지정된 대기열에서 지정된 레이블이 있는 권한 설정을 제거합니다.
Remove-SQSPermission -Label SendMessagesFromMyQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 RemovePermission를 참조하세요.
-
다음 코드 예시에서는 Remove-SQSQueue
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제는 지정된 대기열을 삭제합니다.
Remove-SQSQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 DeleteQueue를 참조하세요.
-
다음 코드 예시에서는 Send-SQSMessage
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 지정된 속성과 메시지 본문이 포함된 메시지를 지정된 대기열로 전송하고 메시지 전송이 10초 동안 지연됩니다.
$cityAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $cityAttributeValue.DataType = "String" $cityAttributeValue.StringValue = "AnyCity" $populationAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $populationAttributeValue.DataType = "Number" $populationAttributeValue.StringValue = "1250800" $messageAttributes = New-Object System.Collections.Hashtable $messageAttributes.Add("City", $cityAttributeValue) $messageAttributes.Add("Population", $populationAttributeValue) Send-SQSMessage -DelayInSeconds 10 -MessageAttributes $messageAttributes -MessageBody "Information about the largest city in Any Region." -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
출력:
MD5OfMessageAttributes MD5OfMessageBody MessageId ---------------------- ---------------- --------- 1d3e51347bc042efbdf6dda31EXAMPLE 51b0a3256d59467f973009b73EXAMPLE c35fed8f-c739-4d0c-818b-1820eEXAMPLE
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 SendMessage를 참조하세요.
-
다음 코드 예시에서는 Send-SQSMessageBatch
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 지정된 속성과 메시지 본문이 포함된 2개의 메시지를 지정된 대기열로 보냅니다. 첫 번째 메시지의 경우 15초, 두 번째 메시지의 경우 10초 동안 전송이 지연됩니다.
$student1NameAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $student1NameAttributeValue.DataType = "String" $student1NameAttributeValue.StringValue = "John Doe" $student1GradeAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $student1GradeAttributeValue.DataType = "Number" $student1GradeAttributeValue.StringValue = "89" $student2NameAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $student2NameAttributeValue.DataType = "String" $student2NameAttributeValue.StringValue = "Jane Doe" $student2GradeAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $student2GradeAttributeValue.DataType = "Number" $student2GradeAttributeValue.StringValue = "93" $message1 = New-Object Amazon.SQS.Model.SendMessageBatchRequestEntry $message1.DelaySeconds = 15 $message1.Id = "FirstMessage" $message1.MessageAttributes.Add("StudentName", $student1NameAttributeValue) $message1.MessageAttributes.Add("StudentGrade", $student1GradeAttributeValue) $message1.MessageBody = "Information about John Doe's grade." $message2 = New-Object Amazon.SQS.Model.SendMessageBatchRequestEntry $message2.DelaySeconds = 10 $message2.Id = "SecondMessage" $message2.MessageAttributes.Add("StudentName", $student2NameAttributeValue) $message2.MessageAttributes.Add("StudentGrade", $student2GradeAttributeValue) $message2.MessageBody = "Information about Jane Doe's grade." Send-SQSMessageBatch -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue -Entry $message1, $message2
출력:
Failed Successful ------ ---------- {} {FirstMessage, SecondMessage}
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 SendMessageBatch를 참조하세요.
-
다음 코드 예시에서는 Set-SQSQueueAttribute
을 사용하는 방법을 보여 줍니다.
- for PowerShell 도구
-
예제 1:이 예제에서는 대기열을 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 -AttributeName "QueueArn").QueueARN # construct the policy and inject arns $policy = @" { "Version": "2008-10-17", "Id": "$qarn/SQSPOLICY", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": "*", "Action": "SQS:SendMessage", "Resource": "$qarn", "Condition": { "ArnEquals": { "aws:SourceArn": "$topicarn" } } } ] } "@ # set the policy Set-SQSQueueAttribute -QueueUrl $qurl -Attribute @{ Policy=$policy }
예제 2:이 예제는 지정된 대기열에 대해 지정된 속성을 설정합니다.
Set-SQSQueueAttribute -Attribute @{"DelaySeconds" = "10"; "MaximumMessageSize" = "131072"} -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
-
API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조의 SetQueueAttributes를 참조하세요.
-