법적 사안 통합 오류 문제 해결

refresh_date: 2023-01-06

Google Cloud 프로젝트의 안정성을 모니터링하는 도구를 제공하고 Google Cloud MonitoringGoogle Cloud Logging 오류 로그로 문제를 디버그합니다. 사용자 인텐트를 처리할 때 오류가 발생하면 Google Home Analytics 파이프라인이 측정항목에 오류를 기록하고 프로젝트 로그에 오류 로그를 게시합니다.

오류를 해결하는 방법은 두 가지입니다.

  1. 스마트 홈 측정항목으로 프로젝트 상태를 모니터링합니다.
  2. 오류 로그에서 자세한 오류 설명을 확인하여 문제를 조사합니다.

오류 모니터링

Google Cloud Monitoring dashboards 을 사용하여 프로젝트 측정항목에 액세스할 수 있습니다. 품질 모니터링 및 디버깅에 특히 유용한 몇 가지 주요 차트가 있습니다.

  • 성공률 차트는 프로젝트의 안정성을 모니터링할 때 가장 먼저 시작하는 차트입니다. 이 차트의 하락은 사용자층의 일부 또는 전체에 대한 서비스 중단을 나타낼 수 있습니다. 프로젝트를 변경하거나 업데이트한 후에는 이 차트에서 비정상적인 부분을 면밀히 모니터링하는 것이 좋습니다.
  • 오류 분석 차트는 통합 문제를 해결할 때 가장 유용합니다. 성공률 차트에서 강조표시된 모든 오류에 대해 오류 분석에 오류 코드가 표시됩니다. 아래 표에서 Google Home platform에서 플래그가 지정된 오류와 해결 방법을 확인할 수 있습니다.

일반적인 플랫폼 오류 코드

다음은 프로젝트 로그에 표시될 수 있는 일반적인 오류 코드입니다. Google Home platform에서 포착한 문제를 식별합니다. 문제 해결 정보는 다음 표를 참조하세요. 전체 오류 코드 목록은 다음 오류 및 예외를 참조하세요.

오류 코드 설명 파트너 조치 가능
AGENT_ISSUE 파트너의 클라우드 에이전트에 일반적인 문제가 발생했습니다.

처리되지 않은 예외 또는 비정상 종료가 처리 로그에 있는지 확인합니다.
AGENT_UNAVAILABLE_ERROR Google에서 파트너의 처리 URL에 연결할 수 없습니다.

서버가 온라인 상태이고 방화벽이 Google을 차단하지 않으며 URL이 올바른지 확인합니다.
BACKEND_FAILURE_URL_TIMEOUT Google에서 서비스에 연결하려고 할 때 요청 시간이 초과되었습니다.

서비스가 온라인 상태이고 연결을 수락하며 용량을 초과하지 않는지 확인합니다. 또한 대상 기기가 전원이 켜져 있고 온라인 상태이며 동기화되었는지 확인합니다.
BACKEND_FAILURE_URL_UNREACHABLE Google에서 서비스로부터 HTTP 5xx 오류 코드를 수신했습니다.

Google Cloud Logging의 requestId를 사용하여 스마트 홈 서비스 로그를 확인합니다. 서버 비정상 종료, 시간 초과, 또는 502/503 게이트웨이 오류를 조사합니다.
COMMAND_FAILED 명령어를 실행하는 중에 일반적인 오류가 발생했습니다.

처리 로그에서 특정 requestId 를 확인하여 근본 원인을 찾습니다.
EXECUTION_BACKEND_FAILURE_URL_ERROR Google에서 처리로부터 HTTP 4xx 오류 (401 이외)를 수신했습니다.

웹 서버 로그에서 403, 404 또는 400 응답을 확인합니다.
EXECUTION_BACKEND_FAILURE_URL_ROBOTED 처리 URL이 robots.txt 또는 보안 필터에 의해 차단되었습니다.

처리 엔드포인트에 Google의 크롤러/서비스가 액세스할 수 있는지 확인합니다.
EXECUTION_BACKEND_FAILURE_URL_UNREACHABLE Google에서 처리 서비스로부터 HTTP 5xx 오류를 수신했습니다.

엔드포인트 URL 서비스가 안정적이고 올바르며 공개적으로 연결 가능하고 서비스가 실행 중인지 확인합니다. 상태 점검 및 재시도 처리를 추가합니다. 서버 비정상 종료, 시간 초과 또는 502/503 게이트웨이 오류를 조사합니다.
EXECUTION_BAILOUT_INVALID_RESPONSE JSON 응답이 너무 잘못되어 처리가 중단되었습니다.

JSON 유효성 검사기를 사용하여 응답이 인텐트 스키마를 엄격하게 따르는지 확인합니다.
EXECUTION_GAL_BAD_3P_RESPONSE 토큰 응답의 형식이 잘못되어 계정 연결에 실패했습니다.

OAuth 서버의 응답 형식이 Google의 요구사항과 일치하는지 확인합니다.
EXECUTION_GAL_INSUFFICIENT_CAPABILITIES 사용자 계정에 이 작업을 실행하는 데 필요한 권한이 없습니다.

OAuth 중에 요청된 범위를 확인하고 필요한 특성과 일치하는지 확인합니다.
EXECUTION_GAL_MAYBE_UNLINKED_BY_3P 파트너 클라우드에서 사용자가 계정을 연결 해제했음을 나타냅니다.

agentUserId 매핑이 안정적이고 삭제되지 않았는지 확인합니다.
EXECUTION_GAL_NOT_FOUND Google에 저장된 사용자의 액세스 토큰 및 갱신 토큰이 잘못되었거나 갱신할 수 없어 파트너 서비스에 대한 인증 및 액세스가 차단됩니다.

토큰이 유효하고 동기화된 상태로 유지되도록 하고 계정 상태 변경을 적절하게 처리하며 토큰이 취소된 것으로 확인되면 사용자에게 계정을 다시 연결하도록 요청합니다.
EXECUTION_GAL_READ_ONLY_MODE_FOR_3P 통합이 파트너 측에서 읽기 전용 상태입니다.

사용자 계정이 정지되었거나 "보기 전용" 유지보수 모드에 있는지 확인합니다.
EXECUTION_GAL_UNLINKED_BY_3P 서드 파티 서비스에서 계정을 사전에 연결 해제했습니다.

사용자가 연결 해제된 이유를 조사합니다 (예: 보안 재설정). 파트너의 OAuth 서버가 Google의 refresh_token 요청에 올바르게 응답하여 새 액세스 토큰을 원활하게 발급하는지 확인합니다.
EXECUTION_INVALID_JSON Google에서 JSON 응답 페이로드를 파싱할 수 없습니다.

응답에서 문법 오류, 괄호 누락 또는 잘못된 문자가 있는지 확인합니다.
INVALID_AUTH_TOKEN Google에서 서비스로부터 HTTP 401 오류 코드를 수신했습니다.

액세스 토큰이 만료되지 않았지만 서비스에서 무효화했습니다. Google Cloud Logging의 requestId를 사용하여 스마트 홈 서비스 로그를 확인합니다.
INVALID_JSON 응답 구조가 잘못되었습니다 (예: 필수 필드 누락 ).

응답의 유효성을 인텐트 JSON 스키마에 대해 검사합니다.
MALFORMED_JSON JSON 구조가 손상되었습니다 (예: 닫히지 않은 문자열 또는 객체).

처리가 표준 JSON 라이브러리를 사용하여 응답을 직렬화하는지 확인합니다.
NOT_IMPLEMENTED 요청된 인텐트 또는 특성이 파트너에 의해 구현되지 않았습니다.

완전히 구현한 특성만 SYNC 응답에 포함합니다.
OPEN_AUTH_FAILURE 사용자의 액세스 토큰이 만료되어 Google에서 갱신할 수 없거나 Google에서 서비스로부터 HTTP 401 오류 코드를 수신했습니다.

이 코드의 비율이 증가하는 경우 스마트 홈 인텐트 또는 갱신 토큰 요청과 관련된 오류의 비율도 증가하는지 확인합니다.
PARTNER_RESPONSE_INVALID_ERROR_CODE 반환된 errorCode 문자열이 Google의 지원되는 목록에 없습니다.

내부 오류를 공식 오류 목록에 매핑합니다.
PARTNER_RESPONSE_INVALID_PAYLOAD 응답의 payload 필드가 유효한 JSON 객체가 아닙니다.

처리 응답의 루트 구조를 확인합니다.
PARTNER_RESPONSE_INVALID_STATUS 응답 status가 SUCCESS, ERROR 또는 OFFLINE이 아닙니다.

응답의 모든 기기 결과에 유효한 상태 문자열이 포함되어 있는지 확인합니다.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES 응답에 요청된 모든 명령어/기기의 결과가 포함되지 않았습니다.

Google Home 개발자 문서를 기준으로 응답 구조의 유효성을 검사합니다. 내부 서버 오류로 인해 응답이 잘리거나 빈 본문을 반환하지 않는지 확인합니다. 요청의 commands 배열에 있는 모든 항목에는 해당하는 응답 항목이 있어야 합니다.
PARTNER_RESPONSE_MISSING_DEVICE Google에서 요청한 특정 기기가 응답에서 생략되었습니다.

응답에 요청 페이로드에 제공된 모든 ID가 포함되어 있는지 확인합니다.
PARTNER_RESPONSE_MISSING_PAYLOAD 응답에 필수 payload 필드가 없습니다.

최상위 JSON 객체에 payload 키가 포함되어 있는지 확인합니다.
PARTNER_RESPONSE_NOT_OBJECT 전체 응답을 JSON 객체로 파싱할 수 없습니다.

HTTP 응답 본문에 후행 문자 또는 JSON이 아닌 콘텐츠가 있는지 확인합니다. payload.commands[]가 ID, 상태, 선택적 상태가 있는 적절한 JSON 객체인지 확인합니다.
REQUEST_ID_NOT_FOUND Google에서 요청의 내부 추적 ID를 찾을 수 없습니다.

일반적으로 내부 플랫폼 오류입니다. 급증을 모니터링하고 지원팀에 문의하세요.
RESOURCE_UNAVAILABLE 요청된 리소스 (기기 또는 특성)를 사용할 수 없습니다.

기기가 '사용 중'인지 또는 일시적으로 사용 중지되었는지 확인합니다.
RESPONSE_TIMEOUT 처리 서비스가 9초 이내에 응답하지 못했습니다.

백엔드 지연 시간을 최적화합니다. 느린 DB 쿼리 또는 리전 네트워크 지연이 있는지 확인합니다.
RESPONSE_UNAVAILABLE 파트너 처리 URL에서 응답이 수신되지 않았습니다.

서비스가 실행 중이고 엔드포인트가 비정상 종료되지 않는지 확인합니다.
TIMEOUT 인텐트를 처리하는 중에 일반적인 시간 초과가 발생했습니다.

클라우드와 기기 허브 간의 내부 서비스 시간 초과에 대한 로그를 확인합니다.

검색 로그

측정항목을 사용하여 통합을 모니터링하는 데 익숙해지면 다음 단계는 Cloud Logging을 사용하여 특정 오류를 해결하는 것입니다. Cloud Logging 오류 로그는 시간, 오류 코드, 원래 스마트 홈 인텐트에 관한 세부정보와 같은 유용한 정보가 포함된 필드가 있는 JSON과 유사한 항목입니다.

Google Cloud 내에는 항상 프로젝트에 로그를 전송하는 여러 시스템이 있습니다. 쿼리를 작성하여 로그를 필터링하고 필요한 로그를 찾아야 합니다. 쿼리는 시간 범위, 리소스, 로그 심각도 또는 커스텀 항목을 기반으로 할 수 있습니다.

Cloud 로그 쿼리

쿼리 버튼을 사용하여 커스텀 필터를 빌드할 수 있습니다.

Cloud 로그 쿼리 작성

시간 범위를 지정하려면 시간 범위 선택 버튼 을 클릭하고 제공된 옵션 중 하나를 선택합니다. 이렇게 하면 로그가 필터링되고 선택한 시간 범위에서 발생한 로그가 표시됩니다.

리소스를 지정하려면 리소스 드롭다운을 클릭한 후 Google 어시스턴트 작업 프로젝트를 선택합니다. 이렇게 하면 프로젝트에서 발생한 로그를 표시하는 필터가 쿼리에 추가됩니다.

심각도 버튼을 사용하여 비상, 정보, 디버그, 및 기타 심각도 로그 수준별로 필터링합니다.

의 쿼리 필드를 사용하여 커스텀 항목을 입력할 수도 있습니다.Logs Explorer 이 필드에서 사용하는 쿼리 엔진은 문자열 일치와 같은 기본 쿼리뿐만 아니라 비교 연산자 (<, >=, !=) 및 불리언 연산자 (AND, OR, NOT)를 포함한 고급 쿼리 유형을 모두 지원합니다.

예를 들어 아래의 커스텀 항목은 LIGHT 기기 유형에서 발생하는 오류를 반환합니다.

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

쿼리 라이브러리를 방문하여 로그를 효과적으로 쿼리하는 방법에 관한 추가 예를 확인하세요.

수정사항 테스트

오류를 식별하고 수정사항을 적용한 후에는 테스트 수정사항을 철저히 Google Home Test Suite하는 것이 좋습니다. Test Suite 사용 방법에 관한 사용자 가이드를 제공하며, 이 가이드에서는 변경사항을 효과적으로 테스트하는 방법을 안내합니다.Test Suite

학습 리소스

이 문서에서는 스마트 홈 작업의 오류를 해결하는 단계를 제공합니다. Codelab을 확인하여 디버깅에 관해 자세히 알아볼 수도 있습니다.