プロダクト バージョンによって新しいデプロイを制限する

Cloud Functions には、Cloud Functions(第 1 世代)と Cloud Functions(第 2 世代)という 2 種類のプロダクト バージョンがあります。組織で、新しい関数のデプロイに 1 つのバージョンのみを使用するという制限を適用する必要がある場合は、制約 constraints/cloudfunctions.restrictAllowedGenerations を使用して新しい組織のポリシーを定義できます。この制約を使用して、ポリシーが適用されるフォルダまたはプロジェクトで許可または拒否する世代(バージョン)を指定します。

この制限は、初めてデプロイされる新しい関数にのみ適用されます。既存の関数がポリシーに準拠していない場合でも、これらの既存の関数を再デプロイできます。

始める前に

組織のポリシーを作成または変更するには、アカウントに roles/orgpolicy.policyAdmin ロールが必要です。

ポリシーを使用して制限を設定および適用する

Google Cloud CLI または Google Cloud コンソールを使用して、特定の組織内で初めてデプロイされる新しい Cloud Functions の関数を、指定の環境に制限するポリシーを作成できます。

ポリシーの設定は、既存の関数には適用されません。このポリシーの設定前にデプロイされたすべての関数は、制限なしで再デプロイ、更新、削除できます。

コンソール

  1. Google Cloud コンソールの [組織のポリシー] ページに移動します。
    [組織のポリシー] ページに移動

  2. 新しいポリシーを追加するプロジェクト、フォルダ、または組織を選択します。

    [組織のポリシー] ページに、利用可能な組織のポリシーの制約リストが表示されます。

  3. リストで [Allowed Cloud Functions Generations] ポリシーを見つけます。リストの上部にある [フィルタ] フィールドを使用できます。

  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 の両方を指定します。デフォルトでは、ポリシーが設定されていない場合、両方の環境が許可されます。