我试图在另一个AWS账户(AccountB)中创建管道,我的代码提交存储库位于另一个AWS账户(AccountA)中。从这些链接中我做的方法完全相同:
https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create-cross-account.html https://cloudfornoobs.com/aws-codepipeline-with-cross-account-codecommit-repo/
但是,执行管道后,构建始终会失败。我的pipeline.json如下:
PS:我只想使用codecommit和codebuild而不使用CodeDeploy
querySelectorAll' on 'Document': 'button//contains(@class,'btn primary-button')'
is not a valid selector
答案 0 :(得分:0)
在其他帐户中使用CodeCommit时,由于交叉帐户,触发管道启动的默认CloudWatch事件将不起作用。 CloudWatch的Event bus功能提供了此功能,该功能可以将消息从帐户A发送到帐户B。
事件模式如下所示:
{
"source": [
"aws.codecommit"
],
"detail-type": [
"CodeCommit Repository State Change"
],
"resources": [
"arn:aws:codecommit:us-east-1:AccountAid:RepoName" #Account A's codecommit repo ARN
]
}
目标>选择目标>另一个帐户中的事件总线>输入帐户ID>(管道帐户的ID,帐户B)
选择/创建一个有权将事件发送到另一个帐户的新角色。我已经为其附加了CloudwatchEventsFull Access角色。
Cloudwatch>事件总线>权限>添加权限> AWS账户>输入账户A ID
Cloudwatch>规则>新建>服务名称-代码提交,事件类型为代码提交存储库状态更改,输入帐户A的代码管道的ARN。
事件模式与以前相同,
{
"source": [
"aws.codecommit"
],
"detail-type": [
"CodeCommit Repository State Change"
],
"resources": [
"arn:aws:codecommit:us-east-1:AccountAid:RepoName" #Account A's codecommit repo ARN
]
至此,我们已经完成了Cloudwatch Events的创建。测试提交并验证管道是否已触发。