排查教程问题

如果您在配置教程时遇到问题,本页列出了您可能会遇到的问题,并提供了有关如何解决每个问题的建议。

缺少 cloudshell_open 文件夹

如果您运行 ls ~ 后在主目录中看不到 cloudshell_open 文件夹,则表示该文件夹及其文件已丢失。 当您在暂存模式下使用 Cloud Shell 并断开网络连接或刷新页面时,就会出现此问题。如需解决此问题,请从头开始重新运行教程。为避免日后丢失文件,请考虑切换到默认模式。

无法在当前环境中检测到项目 ID

尝试运行代码示例时,系统会显示以下错误:

ERROR Unable to detect a Project Id in the current environment.

如果您的 Google Cloud 项目未设置,就会出现此问题。如需解决此问题,请运行以下命令来设置项目:

gcloud config set project <YOUR-PROJECT-ID>

运行代码示例时出现 key.json 错误

运行代码示例时,系统会显示以下错误之一:

File /home/user/key.json is not a valid json file
no JSON input found
The file at /home/user/key.json does not exist, or it is not a file
Could not find file '/home/user/key.json'
Error reading credential file from location /home/user/key.json: Value cannot be null

如果用于对服务帐号进行身份验证的 key.json 文件为空或缺失,就会出现此问题。您可以运行以下命令来检查是否属于这种情况:

cat ~/key.json

此命令会输出文件的内容或 No such file or directory 消息。如果文件为空,则表示在创建密钥期间发生了错误。如果文件缺失,则表示在此之前发生了错误。 如需解决此问题,请按照“准备工作环境”教程步骤操作。

AI Commerce Search 之前未用于此项目,或者已停用

尝试运行教程时,系统会显示以下错误:

PERMISSION_DENIED: AI Commerce Search API has not been used in project <YOUR-PROJECT-ID> before or it is disabled

如需解决此问题,请在 Google Cloud 控制台的“API/服务详情”页面中启用 AI Commerce Search,或运行以下命令:

gcloud services enable \
    retail.googleapis.com \
    --project=<YOUR-PROJECT-ID>

服务账号无权访问项目实例

为服务帐号分配角色时,系统会显示以下错误:

User [USER@YOUR-PROJECT-ID.] does not have permission to access projects instance [YOUR-PROJECT-ID:setIamPolicy] (or it may not exist): Policy update access denied.

如需解决此问题,请在终端中运行 gcloud auth list 命令,检查您是否已激活正确的账号。确保激活的账号是服务帐号。前往 Google Cloud 控制台中的 IAM 页面,检查服务帐号是否是您的 Google Cloud 云项目的所有者。

使用最终用户凭据进行身份验证时出错

运行代码示例时,系统会显示以下错误:

PERMISSION_DENIED: Your application has been authenticated using end user credentials from the Google Cloud SDK or Google Cloud Shell which are not supported by the retail.googleapis.com.

如果使用最终用户凭据而不是服务帐号,就会出现此问题。如果服务帐号未激活或未设置所需的环境变量,也可能会出现此问题。您可能会在重启 Cloud Shell 或打开新的终端窗口后看到此错误。

如需解决此问题,请执行以下操作:

  1. 按照“准备工作环境”教程步骤操作,并运行 gcloud auth list 确保您已激活服务帐号。
  2. 设置环境变量:

    1. 对于所有语言,请运行以下命令:
    export GOOGLE_APPLICATION_CREDENTIALS=~/key.json
    
    1. 此外,对于 .NET,请运行以下命令:
    export GOOGLE_PROJECT_ID=<YOUR-PROJECT-ID>
    

服务帐号没有所需角色时出现权限错误

运行代码示例时,系统会显示以下错误:

google.api_core.exceptions.PermissionDenied: 403 Permission 'retail.<YOUR-REQUEST>' denied on resource '//retail.googleapis.com/projects/<YOUR-PROJECT-ID>/locations/<YOUR-LOCATION>' (or it may not exist). [reason: "IAM_PERMISSION_DENIED"

如果您的服务帐号没有所需的角色(retail.admin 和 editor),就会出现此问题。 如需解决此问题,请按照“准备工作环境”教程步骤设置工作环境。

搜索操作未返回任何匹配结果

如果商品清单中没有与搜索查询匹配的商品,或者商品清单为空,就会出现此问题。如需解决此问题,请在 Google Cloud 控制台的“目录”页面中检查您的目录中是否有商品。如果没有,请按照“导入目录数据”教程步骤导入目录数据。

问题仍然存在

请尝试重置 Cloud Shell,然后从头开始运行教程。