ES /docs

AwsTask#fetch! — cross-region IAM permission denied

Fix Plan: PullTaskWorker::perform | ecs:DescribeTasks IAM Permission Denied

Changes#

tesla: app/models/aws_task.rb#

  • What: fetch! 메서드에 Aws::ECS::Errors::AccessDeniedException rescue 절을 추가합니다. describe_tasks 호출을 begin/rescue 블록으로 감싸고, IAM 권한 거부 시 명확한 에러 로그를 남긴 후 nil을 반환합니다. stop! 메서드(lines 114-121)에서 이미 사용 중인 AWS ECS 예외 처리 패턴을 따릅니다.
  • Why: 현재 fetch!에서 AccessDeniedException이 발생하면 PullTaskWorkerrescue StandardError까지 bubble up되어 IAM 문제와 다른 에러를 구분하기 어렵습니다. 명시적 rescue로 권한 문제를 즉시 식별할 수 있습니다.
  • Lines: 69-73 (describe_tasks 호출 부분)

Acceptance Criteria#

  • app/models/aws_task.rbfetch! 메서드에 Aws::ECS::Errors::AccessDeniedException rescue 절이 존재
  • rescue 절에서 Cupix::Logger.error로 "AccessDeniedException" 메시지와 task_id를 로깅
  • stop! 메서드의 기존 예외 처리 패턴(lines 114-121)과 일관된 코드 스타일

Tests#

  • 기존 테스트: spec 파일 없음 (spec/models/aws_task_spec.rb 미존재)
  • 신규 테스트: 없음 — rescue 절 추가만으로 기존 동작을 변경하지 않음