這是我的問題,除了是AWS的新手。我已被賦予複製我們的生產基地的任務,該基地位於US-East-1到US-West-2的DR站點。我遇到了創建SNS警報的問題。以下代碼來自AWS示例並使用我們的JSON導出中的策略。 Whenenver包括我到我的主要PS腳本,我得到了以下錯誤:爲什麼Set-SQSQueueAttribute失敗,出現'InvalidOperationException:參數Policy'錯誤的值無效?
錯誤:
Set-SQSQueueAttribute : Invalid value for the parameter Policy. At line:37 char: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. SetSQSQueueAttributeCmdlet
代碼:
$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 }
什麼榜樣?鏈接? –
我沒有使用AWS的經驗,但是如果該JSON策略是從某處導出的,那麼在使用它之前應該以某種方式導入它 - 例如,使用'ConvertFrom-JSON'使其成爲PowerShell數據結構? – TessellatingHeckler