AWS에서 오류의 원인을 모르는 경우 설정 값을 검토해 봅시다.

1985 단어 초보자CodeBuildAWS

소개



자신이 설정한 CodeBuild 프로젝트에서 에러가 일어나 원인 규명에 시간을 들인 오직 단지 설정치 실수였던 것이 상당히 있었기 때문에 기사로 했습니다.

일어난 일



CodeBuild 프로젝트 내에서 명령이 이끼되었습니다.
echo ${DOCKER_PASSWORD} | docker login -u ${DOCKER_USERNAME} --password-stdin

에러 메시지로서 「Cannnot perform an interactive login from a non TTY device」가 출력되고 있었기 때문에, 「docker의 로그인이 잘 되어 있지 않은 것일까」라고 생각해 이 에러 메세지를 중심으로 조사했습니다만 특히 해결책이 없어 , 엄청 살았어요.

롤, 환경 변수등은 이미 움직이고 있는 다른 프로젝트와 같이 설정했을 것이고, 빌드의 상세를 확인해도 특히 다른 프로젝트와 설정이 다른 바람에는 보이지 않았습니다.

1시간 정도 격투한 뒤, 「환경 변수를 재설정해 보자」라는 이야기가 되어, 텍스트 박스에 미리 입력되어 있던 기존의 설정치에 대해서 마우스를 드래그 해 범위 선택했는데,,,



"DOCKER_USERNAME"과 문자열 뒤에 공백이 섞여있었습니다. . .

공간을 지우자마자 움직여주었습니다.

왜 일어났는가



다른 프로젝트와 같은 값을 설정하기 때문에 「같은 값이고 타이포 무서워서 코피페로 에에로」라고 생각 입력값을 코피페하고 있었습니다.
그 때 섞여 버렸다고 생각됩니다.

왜 알아차리지 못했는가



화면에 표시되어 있는 값의 확인은 하고 있고, 「DOCKER_PASSWORD」등의 값에 타이포는 없는가? 라고 하는 시점에서 체크는 하고 있었습니다.
하지만 뒤에 스페이스가 있는지 여부는 확실히 모르고, 또 값을 범위 선택해도 뒤의 스페이스까지는 표시되지 않았기 때문에 눈치채지 못했습니다.



대책


  • 다른 영향이 없는지 확인하고 일단 움직여 보자

  • CodeBuild라면 적당한 장소(ECR라든지)에 이미지를 푸시하는 것이 대략의 목적이라고 생각하므로 우선 동작 확인을 합시다.
    가장 확실한 확인 방법이라고 생각합니다.
  • 입력 값의 더블 체크

  • 프로덕션에서 운용하는 서비스와 관련된 곳이라면 다른 사람에게 확인하도록 합시다.
    (단, 상기와 같은 경우라면 눈치채지 못할지도 모릅니다.)
  • 이미 다른 설정이 있고 JSON 등으로 설정 값을 출력 할 수 있다면 자신의 설정 값과 diff를 취해 보자

  • 다른 것과 같은 값(System Manager에 설정한 값이라든지)을 사용한다면 유효하다고 생각합니다.

    끝에



    어쩔 수 없는 실수일수록 문제 해결에 시간이 걸립니다. .
    에러 메세지만으로도 아무것도 해결되지 않을 것 같은 경우는 참고해 주시면 상황이 호전할지도 모릅니다.

    좋은 웹페이지 즐겨찾기