Azure Cosmos DB에서 잘못된 요청 예외 진단 및 문제 해결
적용 대상: NoSQL
HTTP 상태 코드 400은 요청에 잘못된 데이터가 포함되어 있거나 필요한 매개 변수가 누락되었음을 나타냅니다.
ID 속성 누락
이 시나리오에서는 일반적으로 다음과 같은 오류가 표시됩니다.
필수 속성 'id;'가 누락되어 입력 콘텐츠가 잘못되었습니다.
이 오류가 있는 응답은 서비스로 보내는 JSON 문서에 필수 ID 속성이 없음을 의미합니다.
솔루션
문서의 일부로 REST 사양에 따라 문자열 값이 있는 id
속성을 지정합니다. SDK는 이 속성에 대한 값을 자동으로 생성하지 않습니다.
잘못된 파티션 키 형식
이 시나리오에서는 일반적으로 다음과 같은 오류가 표시됩니다.
파티션 키 ...가 잘못되었습니다.
이 오류가 있는 응답은 파티션 키 값의 형식이 잘못되었음을 의미합니다.
솔루션
파티션 키의 값은 문자열 또는 숫자여야 합니다. 값이 필요한 유형인지 확인합니다.
잘못된 파티션 키 값
이 시나리오에서는 일반적으로 다음과 같은 오류가 표시됩니다.
응답 상태 코드가 성공을 나타내지 않음: BadRequest(400); 하위 상태: 1001
문서에서 추출된 PartitionKey가 헤더에 지정된 것과 일치하지 않습니다.
이 오류가 있는 응답은 작업을 실행하고 예상 속성에 대한 문서의 본문 값과 일치하지 않는 파티션 키 값을 전달하고 있음을 의미합니다. 컬렉션의 파티션 키 경로가 /myPartitionKey
인 경우 문서에는 SDK 메서드를 호출할 때 파티션 키 값으로 제공된 값과 일치하지 않는 값을 가진 myPartitionKey
라는 속성이 있습니다.
솔루션
문서 속성 값과 일치하는 파티션 키 값 매개 변수를 보냅니다.
숫자 파티션 키 값 정밀도 손실
이 시나리오에서는 일반적으로 다음과 같은 오류가 표시됩니다.
요청된 파티션 키가 키 범위를 벗어났습니다. 파티션 키 값의 정밀도가 손실되었기 때문일 수 있습니다.
이 오류가 있는 응답은 값이 Azure Cosmos DB에서 지원하는 범위를 벗어난 숫자 파티션 키가 있는 문서에 대한 작업으로 인해 발생할 수 있습니다. 숫자 속성 값의 최대 길이는 항목별 제한을 참조하세요.
솔루션
정확한 숫자 값이 필요한 경우 파티션 키에 string
형식을 사용하는 것이 좋습니다.
다음 단계
- Azure Cosmos DB .NET SDK를 사용하고 있는 경우 문제를 진단 및 해결합니다.
- .NET v3 및 .NET v2의 성능 지침에 대해 알아봅니다.
- Azure Cosmos DB Java v4 SDK를 사용할 때 발생하는 문제를 진단하고 해결합니다.
- Java v4 SDK의 성능 지침에 대해 알아봅니다.