Amazon SQS, Amazon SNS und Tools for Windows PowerShell - AWS Tools for PowerShell

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon SQS, Amazon SNS und Tools for Windows PowerShell

Dieser Abschnitt enthält Beispiele, die Folgendes veranschaulichen:

  • Erstellen einer Amazon-SQS-Warteschlange und Abrufen des Amazon-Ressourcennamens (ARN).

  • Erstellen Sie ein Amazon SNS-Thema.

  • Erteilen Sie Berechtigungen für das SNS-Thema, damit es Nachrichten an die Warteschlange senden kann.

  • Abonnieren der Warteschlange für das SNS-Thema

  • Gewähren Sie IAM-Benutzern oder AWS-Konten Berechtigungen zur Veröffentlichung im SNS-Thema und zum Lesen von Nachrichten in der SQS-Warteschlange.

  • Verifizieren Sie die Ergebnisse, indem Sie eine Nachricht im Thema veröffentlichen und die Nachricht in der Warteschlange lesen.

Erstellen einer Amazon-SQS-Warteschlange und Abrufen des Warteschlangen-ARN

Mit dem folgenden Befehl wird eine SQS-Warteschlange in Ihrer Standardregion erstellt. Die Ausgabe zeigt die URL der neuen Warteschlange an.

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

Der folgende Befehl ruft den ARN der Warteschlange ab.

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

Erstellen Sie ein Amazon SNS-Thema.

Mit dem folgenden Befehl wird ein SNS-Thema in Ihrer Standardregion erstellt und der ARN des neuen Themas wird zurückgegeben.

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

Gewähren von Berechtigungen für das SNS-Thema

Das folgende Beispielskript erstellt sowohl eine SQS-Warteschlange als auch ein SNS-Thema und erteilt Berechtigungen für das SNS-Thema, damit es Nachrichten an die SQS-Warteschlange senden kann:

# 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 }

Abonnieren der Warteschlange für das SNS-Thema

Mit dem folgenden Befehl wird die Warteschlange myQueue für das SNS-Thema myTopic abonniert und die Abonnement-ID zurückgegeben:

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

Gewähren von Berechtigungen

Mit dem folgenden Befehl wird die Berechtigung zum Ausführen der Aktion sns:Publish für das Thema myTopic gewährt

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

Mit dem folgenden Befehl wird die Berechtigung zum Ausführen der Aktionen sqs:ReceiveMessage und sqs:DeleteMessage für die Warteschlange myQueue gewährt:

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

Überprüfen der Ergebnisse

Mit dem folgenden Befehl werden Ihre neue Warteschlange und das neue Thema getestet, indem eine Nachricht im SNS-Thema myTopic veröffentlicht und die MessageId zurückgegeben wird.

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

Mit dem folgenden Befehl wird die Nachricht aus der SQS-Warteschlange myQueue zurückgegeben und angezeigt:

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==