Snowpark Container Services 故障排除¶
本主题讨论常见问题以及如何解决这些问题。
镜像注册表¶
访问公共服务端点时收到“invalid consent request”错误。
在当前实现中,Snowflake 使用当前用户的默认角色对他们进行身份验证。此错误的原因可能是用户正使用某个特权角色(如 ACCOUNTADMIN 或 SECURITYADMIN)作为其默认角色(请参阅 阻止特定角色使用集成)。使用 ALTER USER 命令更改用户的默认角色,然后重试。
docker login
身份验证失败。请勿这样做:在
docker login
命令中使用大写的主机名,然后在docker push
和docker pull
命令中使用小写的主机名。Docker CLI 存储凭据时区分大小写按键。相关的 Docker CLI ` 问题 <https://github.com/docker/cli/issues/2753 (https://github.com/docker/cli/issues/2753)> `_。docker push
错误:请求 URL 中没有主机。与 Docker CLI 交互时,请始终将 URL 中账户名内的下划线替换为连字符。如果主机名中有下划线,即使 cURL 有效,Docker CLI 也会返回错误。例如,以下 Docker 推送指定“my_acct”作为账户名:
docker push myorg-my_acct.registry.snowflakecomputing.cn/tutorial_db/data_schema/tutorial_repository/service_to_service
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
服务¶
运行中的服务不再响应来自服务函数或公共端点的请求。服务状态从运行中变为待定。
这可能表明计算池节点上的资源不足。如果容器是资源密集型(CPU/内存),则应在服务规范中显式指定资源请求,以防止在单个节点上放置太多服务(包括作业服务)。
在当前的实现中,您只能指定内存请求。
例如,如果计算池中的一个节点有 64 GB 的 RAM,则为服务(或作业服务)请求超过 32 GB 的内存将保证一次只能在一个节点上运行一个服务或作业服务。有关每种实例类型的功能的更多信息,请参阅 CREATE COMPUTE POOL。
如果要向公共端点提交服务请求,请不要在 HTTP 身份验证标头中使用双引号。
服务函数¶
服务函数超时和重复执行问题。
如果单个服务函数调用的时间超过 30 秒,Snowflake 会重试该函数,在数次重试之后,该函数会失败并显示超时错误。如果容器中的函数实现不是幂等的,则可能会得到意外的结果。考虑通过返回其他 HTTP 代码 (202) 来使用异步执行,这将允许更长的超时。有关更多信息,请参阅 异步远程服务。