按产品版本限制新部署

Cloud Functions 提供两个产品版本:Cloud Functions(第 1 代),这是原始版本,以及 Cloud Functions(第 2 代)。如果您的组织想要限制只能使用一种版本来部署新函数,您可以使用限制条件 constraints/cloudfunctions.restrictAllowedGenerations 定义一项新的组织政策。您可以使用此限制条件指定应用政策的文件夹或项目中允许或拒绝的世代(版本)。

该限制仅适用于首次部署的新函数。您仍然可以重新部署现有函数,即使它们不符合该政策。

准备工作

要创建或更改组织政策,您的账号必须具有 roles/orgpolicy.policyAdmin 角色。

使用政策设置和实施限制

您可以使用 Google Cloud CLI 或 Google Cloud 控制台创建政策,将给定组织中首次部署的新 Cloud Functions 函数限制为指定环境。

请注意,设置政策不适用于现有函数。在该政策之前部署的所有函数都可以不受限制地重新部署、更新或删除。

控制台

  1. 转到 Google Cloud 控制台中的“组织政策”页面。
    转到“组织政策”页面

  2. 选择要添加新政策的项目、文件夹或组织。

    “组织政策”页面会显示可用组织政策限制条件的列表。

  3. 在列表中找到允许的 Cloud Functions 世代政策。您可以使用列表顶部的过滤条件字段。

  4. 点击政策的名称。或者,您也可以从上下文菜单中选择修改政策

  5. 点击管理政策

  6. 应用对象下选择自定义

  7. 强制执行政策下选择替换

  8. 点击规则下的添加规则

  9. 政策值字段中,选择自定义

  10. 政策类型字段中,选择允许

  11. 自定义值字段中,指定要在组织中强制执行的环境。支持的值:

    • 1stGen:仅允许使用 Cloud Functions(第 1 代)。
    • 2ndGen:仅允许使用 Cloud Functions(第 2 代)。
    • 如需明确允许这两个环境,请同时指定 1stGen2ndGen。如果未设置政策,则默认允许这两个环境。
  12. 点击完成

  13. 点击保存

更改将很快生效,并且该政策将阻止在指定环境中部署 Cloud Functions 函数。

gcloud

运行以下命令:

gcloud resource-manager org-policies \
allow cloudfunctions.restrictAllowedGenerations \
--organization=ORGANIZATION_NUMBER VERSION

其中,ORGANIZATION_NUMBER 是要应用政策的组织编号,VERSION 是必须用于新部署的 Cloud Functions 版本。VERSION 可以是以下之一:

  • 1stGen:仅允许使用 Cloud Functions(第 1 代)。
  • 2ndGen:仅允许使用 Cloud Functions(第 2 代)。
  • 如需明确允许这两个环境,请同时指定 1stGen2ndGen。如果未设置政策,则默认允许这两个环境。