【发布时间】:2016-05-11 03:53:54
【问题描述】:
这是我的问题,除了是 AWS 新手。我的任务是为 DR 站点复制位于 US-East-1 到 US-West-2 的生产站点。我在创建 SNS 警报时遇到问题。以下代码来自 AWS 示例并使用我们的 JSON 导出中的策略。当我将它包含到我的主 PS 脚本中时,我收到以下错误:
错误:
Set-SQSQueueAttribute : 参数 Policy 的值无效。 在行:37 字符:5 + 设置 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 数据结构?
标签: powershell amazon-web-services amazon-s3 aws-powershell