본문 바로가기

개발하자

터라폼 설정 - 원격 상태 s3 - 잘못된 매개 변수 유효성 검사 오류

반응형

터라폼 설정 - 원격 상태 s3 - 잘못된 매개 변수 유효성 검사 오류

환경

Terraform v0.12.24 + provider.aws v2.61.0

알파인 컨테이너를 타고 달리는 것.

배경

기본 테라폼 스크립트는 정상적으로 실행되고 있지만, 지금은 확장 중이며 원격(S3) 상태를 구성하려고 합니다.

terraform.tf:

terraform {
  backend "s3" {
    bucket         = "labs"
    key            = "com/company/labs"
    region         = "eu-west-2"
    dynamodb_table = "labs-tf-locks"
    encrypt        = true
  }
}

버킷이 존재하고 테이블도 존재합니다. 두 가지 모두 테라폼으로 제작하였으며 콘솔을 통해 확인하였습니다.

문제

실행 시 다음과 같이 표시됩니다:

Error refreshing state: InvalidParameter: 2 validation error(s) found.
- minimum field size of 1, GetObjectInput.Bucket.
- minimum field size of 1, GetObjectInput.Key.

내가 시도한 것

오류가 보고되지 않고 내 파일을 다시 포맷합니다. 어떤 이유로 파일이 무시될까 봐 스탠자를 내 것으로 옮겨 보았다. 저도 똑같은 결과를 받았어요.

나는 또한 aws에서 ubuntu ec2 인스턴스에서 알파인 컨테이너 없이 이것을 실행하려고 시도했지만 동일한 결과를 얻었다.

나는 원래 키에 테라폼 파일의 이름을 가지고 있었다. 제가 그것을 제거했지만 문제 해결에 도움이 되지 않았습니다.

또한 이전 이미지에서 실행하려고 했지만 비슷한 오류가 발생했습니다:

Error: Failed to get existing workspaces: InvalidParameter: 1 validation error(s) found.
- minimum field size of 1, ListObjectsInput.Bucket.

내가 여기서 사소한 바보짓을 한 것 같은데, 그게 뭔지 모르겠어.




해결됐어요!!!

나는 그 문제를 이해할 수 없지만, 지금은 해결책이 있다. 나는 디렉터리를 삭제하고 다시 실행했다. 나는 현재 상태가 없기 때문에 이것은 괜찮다. 이러한 통찰은 작업 공간을 읽을 수 없다는 불만을 제기한 0.12.17 버전의 테라폼에서 오류를 읽은 것에서 비롯되었습니다.

Error: Failed to get existing workspaces: InvalidParameter: 1 validation error(s) found.
- minimum field size of 1, ListObjectsInput.Bucket.

그것은 처음에 나로 하여금 이전 버전의 tf가 새로운 버전의 구성을 읽는 데 문제가 있다고 믿게 했다. 그래서, 나는 그것을 날려버렸고 그것은 오래된 tf와 함께 작동했다, 그래서 나는 그것을 다시 했고 그것은 새로운 tf와도 작동했다. 분명히, 무언가가 테라폼의 저장고에서 엉망이 되었다. 어떻게, 왜 그런지 모르겠어요. 하지만, 저한테는 효과가 있어요, 그래서...




앱 측에서 이 문제에 직면한 경우 잘못된 페이로드를 보내거나 백엔드에서 페이로드를 업데이트할 수 있습니다.

내가 이걸 하기 전에->

--> POST.../등록

{"email":"FamilyKalwar@gmail.com", 사용자":{"password":"123456@aA","사용자 이름":"family kalwar"}

--> END POST(92바이트 본문)

<-- 500 내부 서버 오류.../register(282ms)

{"filename":"잘못된 매개 변수: 2개의 유효성 검사 오류가 발견되었습니다.\n - 최소 필드 크기는 6, 입력 등록입니다.비밀번호.\n - 최소 필드 크기는 1, SignUpInput입니다.사용자 이름.\n"}

*

{
  "email": "tanishat1@gmail.com",
  "username": "tanishat1",
  "password": "123456@aA"
}

"사용자" 데이터 클래스를 제거하고 페이로드를 업데이트했더니 작동했습니다!


반응형