sum*_*tty 15 amazon-web-services amazon-sns aws-codepipeline
我正在尝试使用支持 SNS 的通知规则为代码管道设置通知。
如图所示,状态为“无法访问”
如果我查看此处的链接aws 故障排除
我已经遵循了所有步骤,甚至在 SNS 主题的访问策略中添加 codestar-notifications 的步骤。
{
"Sid": "AWSCodeStarNotifications_publish",
"Effect": "Allow",
"Principal": {
"Service": "codestar-notifications.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:codestar-notifications:us-east-1:272075499248:notificationrule/50d629524d433dceeafdb6c5fe136e404f29e9e5"
}
Run Code Online (Sandbox Code Playgroud)
但是,状态仍然保持不变,也尝试手动启动管道,但仍然不起作用。
我错过了什么吗?有人能帮我解决这个问题吗?
编辑:
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:GetTopicAttributes",
"SNS:SetTopicAttributes",
"SNS:AddPermission",
"SNS:RemovePermission",
"SNS:DeleteTopic",
"SNS:Subscribe",
"SNS:ListSubscriptionsByTopic",
"SNS:Publish",
"SNS:Receive"
],
"Resource": "arn:aws:sns:us-east-1:272075499248:develop",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "272075499248"
}
}
},
{
"Sid": "AWSCodeStarNotifications_publish",
"Effect": "Allow",
"Principal": {
"Service": "codestar-notifications.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:us-east-1:272075499248:develop"
}
]
}
Run Code Online (Sandbox Code Playgroud)
Rap*_*tin 16
每当您单独创建SNS 主题时,默认访问策略将如下所示:
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:Publish",
"SNS:RemovePermission",
"SNS:SetTopicAttributes",
"SNS:DeleteTopic",
"SNS:ListSubscriptionsByTopic",
"SNS:GetTopicAttributes",
"SNS:AddPermission",
"SNS:Subscribe"
],
"Resource": "arn:aws:sns:us-east-2:123456789012:my-sns-topic",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "123456789012"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
上面是错误的,不会让您的 CodePipeline 访问SNS 主题(使其可访问/“Active”)!将SNS 主题的访问策略更改为以下内容:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "CodeNotification_publish",
"Effect": "Allow",
"Principal": {
"Service": "codestar-notifications.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:us-east-2:123456789012:my-sns-topic"
}
]
}
Run Code Online (Sandbox Code Playgroud)
注意 1:更改123456789012
为您的 AWS 账户 ID 和您的SNS 主题my-sns-topic
的名称。注意 2:如果您所在的区域与 不同,请在上面的代码片段中进行更改。注意 3:SNS 主题和CodePipeline 通知规则都应该位于同一区域,否则将不起作用。
us-east-2
每当您创建通知规则,然后创建通知规则目标时,AWS 刷新通知目标状态的唯一方法就是您从中删除通知规则目标CodePipeline -> Settings (on the left side bar) -> Notification rules -> Notification rule targets
(这非常重要!)。
注意:从通知规则本身中删除通知规则目标不会执行任何操作;因此,当您在该页面中重新添加它时,通知规则目标仍将是旧的,因此通知目标状态将保持“无法访问”。
如果完成所有操作后它仍然显示无法访问,请再次重复步骤 #1 和 #2,您可能错过了某些内容。
小智 2
解决此问题的一种方法是使用 CodePipeline 用户界面来创建主题。这将为您设置所有必需的权限。创建通知规则时,在“目标”下,选择“创建目标”并输入您要创建的主题的名称。将使用已设置的权限创建主题。您只需订阅该主题即可接收通知。
归档时间: |
|
查看次数: |
7351 次 |
最近记录: |