Snowpark Container Services 문제 해결

이 항목에서는 일반적인 문제와 이러한 문제를 해결하는 방법을 설명합니다.

이미지 레지스트리

  • 공용 서비스 엔드포인트에 액세스할 때 “invalid consent request” 오류가 수신되었습니다.

    현재 구현에서 Snowflake는 기본 역할을 사용하여 현재 사용자를 인증합니다. 이 오류는 아마 사용자가 ACCOUNTADMIN, SECURITYADMIN 또는 ORGADMIN과 같이 권한 있는 역할 중 하나를 기본 역할로 사용하고 있기 때문에 발생하는 것 같습니다(통합 사용에서 특정 역할 차단하기 참조). ALTER USER 명령을 사용하여 사용자의 기본 역할을 변경하고 다시 시도하십시오.

  • docker login 인증 실패.

    docker login 명령에 대문자 호스트 이름을 사용하지 말고 docker push, docker pull 명령에 소문자 호스트 이름을 사용하십시오. Docker CLI는 대/소문자 키와 함께 자격 증명을 저장합니다. 관련 Docker CLI 문제.

  • docker push 오류: 요청 URL에 호스트가 없습니다.

    Docker CLI와 상호 작용할 때 항상 URL에 있는 계정 이름의 밑줄을 하이픈으로 바꾸십시오. Docker CLI는 호스트 이름에 밑줄이 있으면 (cURL이 작동하더라도) 오류를 반환합니다. 예를 들어 다음 Docker 푸시는 “my_acct”를 계정 이름으로 지정합니다.

    docker push myorg-my_acct.registry.snowflakecomputing.com/tutorial_db/data_schema/tutorial_repository/service_to_service
    
    Copy

    Docker는 다음 오류를 반환합니다.

    Get "https:/v2/": http: no Host in request URL.
    

    또한 SHOW IMAGE REPOSITORIES 명령을 사용하여 유효한 리포지토리 URL을 가져올 수도 있습니다.

컴퓨팅 풀

  • 일시 중단된 컴퓨팅 풀이 STOPPING 상태로 고착되었습니다.

    서비스를 실행하면 컴퓨팅 풀이 중지되지 않습니다. ALTER COMPUTE POOL 명령을 사용하여 컴퓨팅 풀에 남아 있는 모든 활성 서비스를 일시 중단합니다.

    ALTER COMPUTE POOL <pool_name> STOP ALL
    
    Copy

서비스

  • 실행 중인 서비스가 더 이상 (서비스 함수 또는 공용 엔드포인트의) 요청에 응답하지 않습니다. 서비스 상태가 실행 중에서 보류 중으로 변경되었습니다.

    이는 컴퓨팅 풀 노드의 리소스 부족을 나타낼 수 있습니다. 컨테이너가 리소스(CPU/메모리) 집약적인 경우 너무 많은 서비스가 단일 노드에 배치되지 않도록 서비스(작업 서비스 포함)에 리소스 요청을 명시적으로 지정해야 합니다.

    현재 구현에서는 메모리 요청만 지정할 수 있습니다.

    예를 들어 컴퓨팅 풀의 노드에 64GB의 RAM이 있는 경우 서비스(또는 작업 서비스)에 대해 32GB 이상을 요청하면 한 번에 한 노드에서 하나의 서비스 또는 작업 서비스만 노드에서 실행할 수 있도록 보장하게 됩니다. 각 인스턴스 유형의 기능에 대한 자세한 내용은 CREATE COMPUTE POOL 섹션을 참조하십시오.

  • 서비스에 대한 공용 엔드포인트에 요청을 제출하는 경우 HTTP 인증 헤더에 큰따옴표를 사용하지 마십시오.

서비스 함수

  • 서비스 함수 시간 초과 및 중복 실행 문제.

    단일 서비스 함수 호출이 30초보다 오래 걸리는 경우 Snowflake는 함수를 다시 시도하고, 몇 번 다시 시도한 후에는 시간 초과 오류로 인해 함수가 실패합니다. 컨테이너의 함수 구현이 idempotent가 아닌 경우 예기치 않은 결과가 발생할 수 있습니다. 더 긴 시간 제한을 허용하는 다른 HTTP 코드(202)를 반환하여 비동기 실행을 사용해 보십시오. 자세한 내용은 비동기 원격 서비스 섹션을 참조하십시오.