CodePipeline 알림을 만드는 중 오류 발생

배경.


Terraform으로 CodePipeline 알림 섹션을 만들었습니다.
추가할 때 일반적으로 A 환경으로 여겨지지만 B 환경에 들어가자마자 오류가 발생했다
A환경은 확인 중에 직접 공지를 만들었어요.

컨디션


$ terraform -version
Terraform v0.12.26

해본 일


Terraform에서 pipeline과 sns의arn은 다른 알림을 가져오고 만들려고 시도했습니다
resource "aws_codestarnotifications_notification_rule" "pipeline" {
  name     = "notification"

  detail_type    = "FULL"
  event_type_ids = [
    "codepipeline-pipeline-pipeline-execution-started", 
    "codepipeline-pipeline-pipeline-execution-succeeded", 
    "codepipeline-pipeline-pipeline-execution-failed"
  ]

  resource = var.pipeline_arn

  target {
    type    = "SNS"
    address = var.sns_notification_arn
  }
}
그래서 디버깅을 할 때 본 적이 없는 오류가 생겨서 깜짝 놀랐어요.
$ terraform apply -auto-approve
...
Error: error creating codestar notification rule: ConfigurationException: AWS CodeStar Notifications could not create the AWS CloudWatch Events managed rule in your AWS account. If this is your first time creating a notification rule, the service-linked role for AWS CodeStar Notifications might not yet exist. Creation of this role might take up to 15 minutes. Until it exists, notification rule creation will fail. Wait 15 minutes, and then try again. If this is is not the first time you are creating a notification rule, there might be a problem with a network connection, or one or more AWS services might be experiencing issues. Verify your network connection and check to see if there are any issues with AWS services in your AWS Region before trying again.

  on ../../modules/codestar_notification/main.tf line 6, in resource "aws_codestarnotifications_notification_rule" "pipeline":
   6: resource "aws_codestarnotifications_notification_rule" "pipeline" {

일본어로 번역하면'간단하게 웨이브를 할 테니 기다려주세요'만 나와요.
エラー: codestar 通知ルールの作成にエラーが発生しました。ConfigurationExceptionが発生しました。AWS CodeStar Notificationsでは、AWSアカウントのAWS CloudWatch Events管理ルールを作成できませんでした。通知ルールの作成が初めての場合、AWS CodeStar Notificationsのサービス連携ロールがまだ存在していない可能性があります。このロールの作成には最大15分かかる場合があります。このロールが存在するまで、通知ルールの作成は失敗します。15分ほど待ってから、もう一度試してみてください。通知ルールの作成が初めてではない場合は、ネットワーク接続に問題があるか、1つまたは複数のAWSサービスに問題が発生している可能性があります。ネットワーク接続を確認し、AWSリージョン内のAWSサービスに問題が発生していないかどうかを確認してから、再度試してみてください。
그래서 반신반의하며 아무것도 하지 않고 상대방이 말한 대로 15분 후에 쳐서 순조롭게 통과했습니다.
$ terraform apply -auto-approve
...
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

제작된 IAM Role의 확인입니다.


다음과 같이 IAM RoleAWSServiceRoleForCodeStarNotifications 제작이 완료되었고 제작도 얼마 전에 오류에 따라 동작하였습니다.
$ aws iam get-role --role-name AWSServiceRoleForCodeStarNotifications | jq -r .Role.CreateDate                     
2020-09-30T06:24:40Z

$ date
Wed Sep 30 06:45:03 UTC 2020

참고 자료

  • codestarnotifications_notification_rule | Resources | hashicorp/aws | Terraform Registry
  • get-role — AWS CLI 1.18.148 Command Reference
  • 좋은 웹페이지 즐겨찾기