每个 Apps 脚本项目都使用 Google Cloud 来管理授权、高级服务和其他详细信息。为了配置和管理这些设置,每个 Apps 脚本项目都有一个关联的 Google Cloud 项目。您的脚本项目可以使用 Apps 脚本自动创建的默认项目,也可以使用您自己创建的标准项目。一般来说,默认项目适用于日常脚本或简单脚本,但对于任何复杂的商业质量应用,或您打算发布的应用,您都应该使用标准项目。
您可以随时从默认项目切换到标准项目,但无法切换回使用默认项目。最好选择您的脚本在开发初期使用的 Cloud 项目。稍后切换可能会导致复杂问题,例如要求用户重新授权。
默认的 Cloud 项目
创建 Apps 脚本项目时,Apps 脚本会创建一个在后台运行的默认 Cloud 项目。
- 对于大多数脚本,您永远不需要查看或调整此默认项目。Apps 脚本会处理与 Google Cloud 的必要交互。例如,如果您在 Apps 脚本编辑器中激活了某项高级服务,则当您保存脚本项目时,Apps 脚本会在默认 Cloud 项目中激活高级服务。
- 对于某些脚本,您需要与 Google Cloud 控制台进行交互。在这些情况下,您的脚本必须改用标准 Cloud 项目。例如,如需在 Google Cloud 控制台中查看 Google Cloud 日志,您的脚本必须使用标准项目。
默认情况下,Cloud 项目的 Identity and Access Management (IAM) 政策包含一个条目,即充当默认项目的 Owner 的 Google 服务帐号。Google 服务帐号为 appsdev-apps-dev-script-auth@system.gserviceaccount.com
。
查看或更新默认的 Cloud 项目
大多数用户无法直接在 Google Cloud 控制台中查找、查看或修改默认项目。如果您是管理员,请参阅查看默认的 Google Cloud 项目。
如果您的脚本项目是在 2019 年 4 月 8 日之前创建的,那么您可以使用可在 Google Cloud 控制台中访问的默认项目。如需访问默认项目,请转到脚本项目的设置,然后点击项目编号。
删除默认的 Cloud 项目
如果您是管理员,则可以像删除标准 Cloud 项目一样删除默认 Cloud 项目。请参阅删除 Apps 脚本云项目。
如果您不是管理员,则无法删除默认项目。但是,在以下情况下,Apps 脚本会删除默认项目:
- 如果您删除脚本项目或将其切换为标准项目,Apps 脚本会删除附加到该脚本的默认项目及其包含的任何设置或信息。
- 如果脚本未运行 180 天或更长时间,则 Apps 脚本会删除与其关联的默认项目。如果脚本在 Apps 脚本删除其默认项目后运行,Apps 脚本会为该脚本创建一个项目。
标准 Cloud 项目
默认 Cloud 项目是大多数脚本项目的最佳选择,除非您需要手动配置项目。在此类情况下,您必须将脚本项目切换为标准项目。
以下部分介绍了 Apps 脚本何时需要标准项目、此类项目的属性以及通过这些项目完成的常见任务。您只能在标准项目中执行以下任务。
当 Apps 脚本需要标准 Cloud 项目时
在以下情况下,您必须使用标准项目:
- 在 Google Workspace Marketplace 中将脚本项目作为插件发布。
- 验证您的脚本项目的 OAuth 客户端。
- 当应用需要使用 Apps Script API 的
scripts.run
方法执行脚本项目中的函数时。 - 在 Google Cloud 控制台中查看脚本项目的 Google Cloud 日志。Google Cloud 控制台提供了更多用于过滤和查看日志的工具,与 Apps 脚本信息中心提供的简化视图相比,前者更为实用。
- 使用 Error Reporting 查看脚本项目的错误报告。
- 创建一个文件打开对话框。
- 需要手动控制项目的 Google Cloud 设置时。
标准 Cloud 项目属性
标准项目具有以下属性:
- 您可以直接从 Google Cloud 控制台访问项目的所有 Google Cloud 设置。这样,您就可以激活 API、调整授权凭据并配置其他详细信息。
- 当您删除某个脚本项目或将其切换为使用其他标准项目后,原来的标准项目仍会保留,并且可以重复使用。
- 在脚本项目中启用高级服务时,您必须在标准项目中手动启用相应的 API。
- 多个脚本项目和其他应用可以共享同一个标准项目。如果您打算将脚本项目作为插件发布到 Google Workspace Marketplace,则该项目必须具有自己的标准项目。已发布的应用无法与其他应用共享 Cloud 项目。
- 如果您想使用 Apps Script API 的
scripts.run
方法从其他应用中执行脚本项目中的函数,则脚本项目和调用应用必须共用同一个标准项目。 - 当 Apps 脚本要求用户为使用标准项目的脚本授权时,Cloud 项目名称(而不是脚本项目名称)用于标识该脚本。因此,请务必设置适当的 Cloud 项目名称。
访问标准 Cloud 项目
如需访问与脚本项目关联的标准项目,请执行以下操作:
- 打开 Apps 脚本项目。
- 点击左侧的项目设置 。
- 在 Google Cloud Platform (GCP) 项目下,点击项目编号。
您也可以直接在 Google Cloud 控制台的管理资源页面上找到标准项目。
在标准 Cloud 项目中激活 API
Apps 脚本应用经常需要访问其他 Google API。为此,您必须在相应的 Cloud 项目中激活该 API。执行以下操作来激活 API:
- 打开 Cloud 项目。
- 依次点击“菜单”图标 > API 和服务。
- 点击启用 API 和服务。
- 在搜索框中输入要启用的 API,然后按 Enter 键。
- 点击搜索结果中的 API,然后点击启用,为此 Cloud 项目激活该 API。
系统可能会提示您接受 Google API 或 Google Cloud 的服务条款。在接受《服务条款》之前,请仔细阅读。
您可能还需要配置 API,具体视应用而定,方法是在 API 和服务信息中心内选择相应 API。
确定标准 Cloud 项目的 ID 和编号
所有 Cloud 项目都有项目名称、项目 ID 和项目编号。 有时,您必须使用这些标识符来配置服务或完成其他任务。
如需确定标准项目的 ID 和编号,请执行以下操作:
- 打开 Cloud 项目。
- 在右上角,依次点击“更多”图标 > 项目设置。
- 在显示的设置面板中查看项目名称、项目 ID 和项目编号。项目编号仅包含数字,而项目 ID 则是字母数字。您可以修改项目名称,此名称会在系统提示授权提示时向用户显示。
在 Google Cloud 控制台中查看 Google Cloud 日志和错误报告
如果您对脚本项目使用了 Google Cloud Logging 或错误报告功能,则可以通过执行以下操作,在 Google Cloud 控制台中查看这些日志和报告:
- 打开 Cloud 项目。
- 点击“菜单”图标 。
- 向下滚动到操作部分,然后点击 Logging > Logs Explorer。
- 如需查看错误报告,请向下滚动到操作部分,然后点击错误报告。如果系统提示您设置错误报告,则表示您的脚本项目尚未记录任何异常。
填写 OAuth 同意屏幕
使用需要 OAuth 的服务时,Google 会提示用户对这些服务进行授权。通过 OAuth 同意屏幕设置,您可以设置 Google 向用户显示的某些信息,例如应用名称和服务条款网址。
默认的 Cloud 项目会根据 Apps 脚本项目详情自动创建同意屏幕;您无法调整这些设置。对于标准 Cloud 项目,您可以自定义这些信息。您可以通过执行以下操作来配置脚本的意见征求屏幕:
- 打开 Cloud 项目。
- 依次点击“菜单”图标 > API 和服务 > 凭据。
- 点击配置同意屏幕。
- 填写同意屏幕工作流程的每个部分。
- 如需记录您在工作流的每个阶段所做的更改,请点击保存并继续。
创建 OAuth 凭据
Apps 脚本通常会为您的脚本使用的服务设置 OAuth。对于某些应用,您必须创建额外的 OAuth 凭据(客户端 ID 和客户端密钥)。您只能对标准项目执行此操作。
如需为脚本项目创建客户端 ID 和客户端密钥,请执行以下操作:
- 打开 Cloud 项目。
- 依次点击“菜单”图标 > API 和服务 > 凭据。
- 依次点击创建凭据 > OAuth 客户端 ID。
- 在应用类型下,选择您的应用类型,并在需要时填写显示的表单。完成后,点击创建。
- 在出现的对话框中,点击下载 JSON。您可以使用此文件配置 OAuth。
向标准 Cloud 项目添加其他所有者
您可以向标准项目添加其他所有者或其他角色。如果您正在协作处理项目,这有助于确保您团队中的人员始终可以访问脚本项目的 Google Cloud 设置。
您可以执行以下操作,向标准项目添加其他所有者或其他角色。您必须拥有项目的修改权限才能进行以下任一更改:
- 确定协作者。我们建议您创建或使用现有的 Google 群组。您还可以在协作者列表中指定网域,以包含该网域中的所有用户。
- 打开脚本的 Cloud 项目。
- 点击“菜单”图标 > IAM 和管理 > IAM。
- 点击顶部的添加。
- 按照屏幕上的说明向 Cloud 项目添加一个或多个新成员及其角色。您可以将个别电子邮件地址、Google 群组或网域添加为新成员。
- 点击保存。
使用单个 Cloud 项目对多个脚本进行分组
您可以让多个 Apps 脚本项目共用同一个标准 Cloud 项目。为此,请创建一个标准项目,然后切换每个脚本项目,以使用该项目。不能对默认项目执行此操作。
使用其他标准 Cloud 项目
您可以切换脚本项目,使其使用其他标准 Cloud 项目。如果您的脚本需要手动配置 Cloud 项目,您必须从默认项目切换到标准项目。如需详细了解何时需要使用标准项目,请参阅标准 Cloud 项目。
切换到其他标准 Cloud 项目的影响
如果将脚本从默认项目或其他标准项目切换到其他项目,将产生以下影响:
- 如果您为脚本激活了高级服务,则必须在新的 Cloud 项目中启用相应的 API。您将丢失与上一个 Cloud 项目中的高级服务关联的任何数据。如需了解如何在 Cloud 项目中启用 API,请参阅启用 Google Workspace API。
- 如果您的脚本使用内置的 Google 云端硬盘服务,您必须在标准 Cloud 项目中启用 Drive API。
在您的标准 Cloud 项目中,启用 Drive API:
- 之前已向脚本授权的所有用户都必须重新授权。在大多数情况下,如果用户之前曾授权应用与新项目相关联,也必须重新授权。
- 如果您的脚本与 Google Workspace Marketplace 中的应用详情相关联,则您的应用详情、用户和评价不会转移到新项目中。您必须在新项目中创建应用详情,并且用户必须重新安装您的应用。如需了解如何创建新的应用详情,请参阅发布应用。
- 您无法将脚本切换回默认项目。当您将脚本设置为使用标准项目后,Apps 脚本会删除默认项目。
切换到其他标准 Cloud 项目
如需将脚本的现有 Cloud 项目切换到另一个 Cloud 项目,请按以下步骤操作:
- 如果您没有合适的 Cloud 项目,请按照创建项目中的说明创建一个。设置容易记住的项目名称,以便在 Google Cloud 控制台的管理资源页面上找到它。Apps 脚本在要求用户授权脚本时使用此名称。
- 如果要使用现有项目,请打开 Google Cloud 控制台的管理资源页面,找到要使用的现有项目。您必须拥有 Project Browser 和 OAuth Config Editor 角色,或者具有该项目的同等权限的角色。您无法使用由 Apps 脚本自动创建的项目。
- 确定您的 Cloud 项目的项目编号。
- 打开要替换其 Cloud 项目的脚本。
- 点击左侧的项目设置 。
- 在 Google Cloud Platform (GCP) 项目下,点击更改项目。
- 输入新项目编号,然后点击设置项目。
Cloud 项目和共享云端硬盘
共享云端硬盘(以前称为“团队云端硬盘”)提供了共享空间,可供云端硬盘用户群组协作处理 Apps 脚本项目和云端硬盘文档。在与团队一起开发脚本、插件和 Web 应用时,共享云端硬盘非常有用,但对较旧的默认 Cloud 项目可以执行的操作施加了一些限制。
以下限制列表介绍了 Cloud 项目与共享云端硬盘的交互方式:
- 如果您的脚本项目使用标准项目,那么当脚本项目位于共享云端硬盘中时,不存在其他限制。
- 如果您的脚本项目使用 2019 年 4 月 8 日当天或之后创建的默认项目,那么当脚本项目位于共享云端硬盘中时,不存在其他限制。
- 如果您的脚本项目使用 2019 年 4 月 8 日之前创建的默认项目,那么当该脚本项目位于共享云端硬盘中时,存在以下限制:
- 您无法使用 Apps 脚本界面或 Google Cloud 控制台访问默认项目。此限制可防止您执行需要直接访问项目的操作。
- 您无法启用高级服务。如需启用高级服务,请切换到标准项目。
- 当您将现有 Apps 脚本项目移动到共享云端硬盘时,Google 会限制对默认 Cloud 项目的访问权限。如果您在移动前拥有访问权限,则仍然可以访问默认项目。例如,如果您在“我的云端硬盘”文件夹中创建了脚本,然后将其移至共享云端硬盘,则仍可以访问该脚本的 Cloud 项目。共享云端硬盘中的协作者可能无法执行此操作。
- 脚本会保留在移动到共享云端硬盘之前它的 Cloud 项目名称。即使您更改了共享云端硬盘中的项目名称,为脚本授权的用户仍会在授权对话框中看到旧名称。
为避免旧版脚本受到上述限制,请切换到标准项目。
获取 Apps Script Cloud 项目列表
如果您拥有组织的 Apps 脚本项目文件夹的 resourcemanager.projects.list
权限,则可以查看该文件夹中的所有标准和默认 Apps 脚本 Cloud 项目。
- 打开 Google Cloud 控制台的管理资源页面。
- 复制 Apps 脚本文件夹旁边的 ID。
- 依次点击 Filter > Parent ID,然后粘贴 Apps 脚本文件夹 ID。
删除 Apps Script Cloud 项目
如需删除 Apps 脚本云项目,请按照获取 Apps 脚本云项目列表下的步骤操作,选择要删除的项目,然后点击删除。
如需使用 gcloud
删除 Apps 脚本项目,请使用以下命令。
gcloud projects list --filter='parent.id=APPS_SCRIPT_FOLDER_ID'
gcloud projects delete PROJECT_ID
如需详细了解如何删除 Cloud 项目,请参阅关停(删除)项目。