糟糕的是,我们无法发送测试负载:AWS代码部署不支持推送事件。
上面的错误显示给我,当我试图测试我的挂钩服务"代码部署为AWS"。此外,当我提交代码时,它应该自动部署我的新代码,但它失败了。你能帮我解决以上问题吗?
有几个人也遇到过同样的问题,AWS博客中有一些事情需要仔细检查,还有一些棘手的部分没有得到很好的解释。
- 仔细检查您创建的IAM用户,并确保其具有正确的IAM策略。如果您不想自己编写,可以使用AWS提供的"AWSCodeDeployerAccess"策略
- 查看AWS开发者论坛上的这篇文章。TLDR是指部署组必须全部为小写。出于某种原因,GitHub在API调用中减少部署组名称,这将导致与AWS中的部署组名称不匹配
- 在设置"GitHub自动部署"服务时,请确保将"environments"属性设置为部署组的名称。博客文章没有说它们需要匹配,但如果你看屏幕截图,作者实际上对自动部署服务中的"environments"属性和AWS CodeDeploy服务中的部署组属性都使用了相同的字符串
如果你仍然很难设置GitHub挂钩或CodeDeploy,我鼓励你参加我的AWS CodeDeploy课程
如果可能,您可以粘贴用于从Github调用CodeDeploy的AWS用户的权限策略吗?最常见的情况是,用户的权限设置出现问题会引发此错误。
此外,您是否将aws_region配置设置为CodeDeploy应用程序所在的区域?否则,github默认使用"us-east-1"。请参阅https://github.com/github/github-services/pull/1014
谢谢,
Surya。
我在测试服务挂钩时遇到了同样的问题,然后我检查了我在AWS中的部署组名称与Github中的"environments"值不同,我在两个地方都改为相同的值。现在它起作用了。
并确保您正在使用的IAM用户具有codeDeployAccess权限。在我的情况下,就是这样,或者您可以使用AWS现有的策略,即"AWSCodeDeployerAccess"。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "codedeploy:*",
"Resource": "*"
}
]
}
虽然当我在Github中测试web挂钩服务时,它仍然显示了这个错误,但当我推送代码时,它确实有效,一些人在这篇文章中也提到了同样的错误。因此,即使您的web挂钩测试显示错误,您也可以使用真正的git push进行测试。