これがAWSの初心者以外の問題です。US-East-1 にある本番サイトを DR サイト用に US-West-2 に再現するタスクが与えられました。SNS アラートの作成で問題が発生しています。次のコードは AWS の例からのもので、JSON エクスポートのポリシーを使用しています。これをメインの PS スクリプトに含めると、次のエラーが発生します。
エラー:
Set-SQSQueueAttribute : パラメータ ポリシーの値が無効です。行:37 文字:5 + Set-SQSQueueAttribute -QueueUrl $qURL -Attribute @{ Policy=$SNSpo ... + ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (Amazon. PowerShe...AttributeCmdlet:SetSQSQ ueueAttributeCmdlet) [Set-SQSQueueAttribute], InvalidOperationException + FullyQualifiedErrorId : Amazon.SQS.AmazonSQSException,Amazon.PowerShell.Cmdlets.SQS. SetSQSQueueAttributeコマンドレット
コード:
$qURL = New-SQSQueue -QueueName "Test-Queue"
$topicARN = New-SNSTopic -Name "Test-Topic" -Region "us-west-2"
$SNSpolicy = @"
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_policy_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:Subscribe",
"SNS:ListSubscriptionsByTopic",
"SNS:DeleteTopic",
"SNS:GetTopicAttributes",
"SNS:Publish",
"SNS:RemovePermission",
"SNS:AddPermission",
"SNS:Receive",
"SNS:SetTopicAttributes"
],
"Resource": "arn:aws:sqs:us-west-2:123456789012:Test-Queue",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": $topicARN
}
}
]
}
"@
# set the policy
Set-SQSQueueAttribute -QueueUrl $qURL -Attribute @{ Policy=$SNSpolicy }