フォルダの作成と管理

フォルダは、Cloud Platform リソース階層のノードです。フォルダ内には、プロジェクトや他のフォルダが存在します。フォルダを使用すると、階層内の組織ノードにあるプロジェクトをグループ化できます。たとえば、組織に複数の部門があり、それぞれが独自の GCP リソースを使用している場合があります。フォルダを使用すると、これらのリソースを部門別にグループ化できます。フォルダは、共通の IAM ポリシーを共有するリソースのグループ化に使用します。フォルダには複数のフォルダやリソースを入れることができますが、1 つのフォルダやリソースに対する親は 1 つだけです。

下の図では、組織「Company」に 2 つの部門「Dept X」と「Dept Y」を表すフォルダがあり、両方の部門に共通する項目がフォルダ「Shared Infrastructure」に存在しています。「Dept Y」の下に 2 つのチームがあり、チームのフォルダ内にプロダクトが存在します。「Product 1」フォルダには 3 つのプロジェクトが存在し、それぞれにプロジェクトに必要なリソースが含まれています。これにより、適切なレベルの組織ポリシーに IAM ポリシーを柔軟に割り当てることができます。

フォルダ階層の例

フォルダレベルの IAM ポリシーを使用すると、フォルダ内のリソースに対するアクセスを制御できます。たとえば、フォルダに対する Compute インスタンス管理者の役割をユーザーに付与すると、このユーザーには、フォルダ内のすべてのプロジェクトに対する Compute インスタンス管理者の役割が付与されます。

始める前に

フォルダ機能は、組織リソースを持つ G Suite および Cloud Identity のユーザーのみが利用できます。組織リソースの取得については、組織の作成と管理をご覧ください。

フォルダの最適な使い方を学習する前に、次のことを行ってください。

  1. IAM によるフォルダのアクセス制御を確認する。このトピックでは、フォルダとフォルダ内のリソースに対するアクセス制御の方法を説明しています。
  2. フォルダ権限の設定方法を確認する。フォルダには、さまざまな IAM 役割を設定できます。ユーザーがプロジェクトの構造を確認できるように権限を設定するには、ドメイン全体に組織レベルで組織閲覧者フォルダ閲覧者の役割を付与します。フォルダ階層でブランチの公開を制限するには、ユーザーに表示するフォルダにフォルダ閲覧者の役割を付与します。
  3. フォルダを作成する。Cloud リソースの整理方法を検討するときに、サンドボックスとして 1 つのフォルダを作成し、組織で有効な階層を探すことをおすすめします。フォルダは、リソース間の境界であり、アクセス ポリシーや構成ポリシーの割り当てポイントとなります。異なる部門のリソースを含むフォルダを作成して、フォルダに管理者役割を割り当て、管理者権限を委譲することもできます。アプリケーションや異なる環境(部門、本番環境など)に属するリソースをグループ化する場合にもフォルダを使用できます。フォルダをネストすることで、異なるシナリオをモデル化できます。

通常は、上記の図のように、フォルダを作成して、そのフォルダにフォルダやプロジェクトを追加します。この構造をフォルダ階層といいます。フォルダ階層を作成する場合には、次の点に注意してください。

  • フォルダのネストレベルは 4 つまでです。
  • 親フォルダ内に作成できるフォルダは 100 個までです。この制限は、直下の子フォルダのみに適用されます。これらの子フォルダにはフォルダやプロジェクトを追加できます。
  • フォルダの表示名は、階層内の同じレベルで一意にする必要があります。

権限を設定してフォルダを管理する

フォルダにアクセスして管理するには、フォルダ固有の IAM 役割を特定のユーザー グループに割り当てる必要があります。役割の詳細については、IAM によるフォルダのアクセス制御をご覧ください。また、おすすめの方法ではフォルダ権限に最適な構成方法を確認できます。

ヒント: 組織全体のフォルダを管理するには、フォルダ管理者の役割が必要です。この役割を使用すると、フォルダに対する IAM 権限(作成、編集、削除、移動、変更)とフォルダ間でのプロジェクトの移動権限がユーザーに付与されます。

最初の段階では、組織にフォルダ管理者の役割を割り当てることができるのは組織管理者だけです。以降は、この役割が割り当てられたアカウントが他のアカウントに役割を付与します。

フォルダの権限を設定するには:

Console

  1. Google Cloud Platform Console で、[リソースの管理] ページを開きます。

    [リソースの管理] ページを開く

  2. 左上にある [組織] プルダウン リストをクリックして、リソース一覧から組織を選択します。

    組織リソースの選択

  3. 右側の [メンバーを追加] テキスト ボックスにメールアドレスを入力します。

  4. [役割を選択] プルダウン リストボックスで、[Resource Manager] カテゴリに進み、[フォルダ管理者] 役割を選択します。

    権限の設定

  5. [追加] をクリックして、新しい役割を付与します。

gcloud

gcloud コマンドライン ツールを使用すると、フォルダをプログラムで作成できます。これを行うには、次のコマンドを実行します。

gcloud alpha resource-manager folders add-iam-policy-binding [ORGANIZATION_ID] \
--member=user:[USER_ID] \
--role=roles/resourcemanager.folderAdmin

API

JSON リクエスト:

request_json= '{ policy: { version: "1", bindings: [ { role: "roles/folderAdmin",
members: [ "user:admin@myorganization.com", ] }, { role: "roles/folderCreator",
members: [   "user:admin@myorganization.com", ] } , { role: "roles/folderMover",
members: [ "user:admin@myorganization.com", ] } , ] } }'

curl リクエスト:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v1/[ORGANIZATION_NAME]:setIamPolicy

ここで:

  • [ORGANIZATION_NAME] は、IAM ポリシーを設定する組織の名前です。例: organizations/123

フォルダの作成

フォルダを作成するには、親レベルにフォルダ管理者またはフォルダ作成者の役割が必要です。たとえば、組織レベルでフォルダを作成するには、このいずれかの役割が組織レベルで必要です。

フォルダの作成中にフォルダ名を割り当てます。フォルダ名は次の要件を満たす必要があります。

  • 名前には文字、数字、スペース、ハイフン、アンダースコアを使用できます。
  • フォルダの表示名の先頭と最後は文字または数字にする必要があります。
  • 名前は 30 文字以下にしてください
  • 親を共有する別のフォルダと同じ名前は使用できません。

フォルダを作成するには:

Console

フォルダの作成は、UI の [プロジェクトとフォルダを管理] セクションで行います。

  1. GCP Console で [リソースの管理] ページに移動します。

    [リソースの管理] ページを開く

  2. [フォルダを作成] をクリックします。

  3. [フォルダ名] ボックスに、新しいフォルダの名前を入力します。

  4. [宛先] で [参照] をクリックして、新しいフォルダを作成する組織ノードまたはフォルダを選択します。

    1. [作成] をクリックします。

gcloud

gcloud コマンドライン ツールを使用すると、フォルダをプログラムで作成できます。

gcloud コマンドライン ツールで組織のリソースにフォルダを作成するには、次のコマンドを実行します。

gcloud alpha resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

親が異なるフォルダを作成するには:

gcloud alpha resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

ここで:

  • [DISPLAY_NAME] はフォルダの表示名です。同じ親のフォルダと表示名を共有することはできません。表示名の先頭と最後は文字または数字にしてください。表示名には文字や数字以外に、スペース、ハイフン、アンダースコアを使用できますが、長さは 30 文字以下にする必要があります。
  • [ORGANIZATION_ID] は親組織の ID です(親が組織の場合)。
  • 親がフォルダの場合、[FOLDER_ID] は親フォルダの ID です。

API

API リクエストによってフォルダを作成できます。

JSON リクエスト:

request_json= '{
  display_name: "[DISPLAY_NAME]"
}'

フォルダを作成する curl リクエスト:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v2/folders?parent=[ORGANIZATION_NAME]

ここで:

  • [DISPLAY_NAME] は、新しいフォルダの表示名です。例: My Awesome Folder
  • [ORGANIZATION_NAME] は、フォルダを作成する組織の名前です。例: organizations/123

フォルダ作成に対するレスポンス:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

オペレーションを取得する curl リクエスト:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v1/operations/fc.123456789

オペレーション取得に対するレスポンス:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

フォルダに対するアクセス権を設定する

フォルダに対するアクセス権を設定するには、親レベルでフォルダ IAM 管理者またはフォルダ管理者の役割が必要です。

Console

  1. Google Cloud Platform Console で、[リソースの管理] ページを開きます。

    [リソースの管理] ページを開く

  2. 左上にある [組織] プルダウン リストをクリックして、組織を選択します。

  3. 権限を変更するプロジェクトの横にあるチェックボックスをオンにします。

  4. 右側の [情報パネル] の [権限] で、追加するメンバーのメールアドレスを入力します。

  5. [役割を選択] プルダウン リストで、メンバーに付与する役割を選択します。

    UI のスクリーンショット

  6. [追加] をクリックします。メンバーの新しい役割の追加または更新を確認する通知が表示されます。

gcloud

gcloud コマンドライン ツールまたは API を使用すると、フォルダに対するアクセス権をプログラムで構成できます。

gcloud alpha resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor

gcloud alpha resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderViewer

または:

gcloud alpha resource-manager \
  folders set-iam-policy [FOLDER_ID] [POLICY_FILE]

ここで:

  • [FOLDER_ID] は、新しいフォルダの ID です。
  • [POLICY_FILE] は、フォルダのポリシー ファイルのパスです。

API

SetsIamPolicy は、フォルダにアクセス制御ポリシーを設定します。既存のポリシーは置換されます。resource フィールドはフォルダのリソース名です。例: folders/1234

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

curl リクエスト:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v2/[FOLDER_NAME]:setIamPolicy

ここで:

  • [FOLDER_NAME] は、IAM ポリシーが設定されるフォルダの名前です。例: folders/123

フォルダ内にプロジェクトを作成する

フォルダ内にプロジェクトを作成するには、そのフォルダに対するプロジェクト作成者役割(roles/resourcemanager.projectCreator)が必要です。この役割は親フォルダから継承できます。

Console

  1. Google Cloud Platform Console で [プロジェクトとフォルダを管理] ページを開きます。

    Google Cloud Platform Console を開く

  2. [プロジェクトとフォルダを管理] ページに移動します。
  3. ページの左上にある [組織] プルダウンから組織を選択します。
  4. [プロジェクトを作成] をクリックします。
  5. プロジェクト名を入力します。
  6. [移動先] ボックスで [参照] をクリックして、プロジェクトを作成するフォルダを選択します。

    フォルダの選択

  7. [作成] をクリックします。

gcloud

   gcloud alpha projects create [PROJECT_ID]
      --folder [FOLDER_ID]

ここで:

  • [PROJECT_ID] は、作成するプロジェクトの ID です。
  • [FOLDER_ID] は、プロジェクトを作成するフォルダの ID です。

API

JSON リクエスト:

   request_json= ‘{
      name: “[DISPLAY_NAME]”, projectId: “[PROJECT_ID]”, parent: {id: [PARENT_ID], type: [PARENT_TYPE] }
   }’

curl リクエスト:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v1/projects

ここで:

  • [PROJECT_ID] は、作成するプロジェクトの ID です。例: my-awesome-proj-123
  • [DISPLAY_NAME] は、作成するプロジェクトの表示名です。
  • [PARENT_ID] は、作成するプロジェクトの親の ID です。例: 123
  • [PARENT_TYPE] は、親のタイプ(フォルダ、組織など)です。

プロジェクトのフォルダへの移動

フォルダにプロジェクトを移動するには、プロジェクトだけでなく、移動元と移動先のフォルダに対しても特定の IAM 役割が必要です。特に、次の条件を満たす必要があります。

  1. プロジェクトに対して resourcemanager.projects.update 権限があること。プロジェクトに対するプロジェクト編集者またはプロジェクト オーナーの役割があれば、この権限が付与されています。

  2. 移動元と移動先の両方のフォルダに対して、resourcemanager.projects.move 権限があること。この権限は通常、プロジェクト オーナープロジェクト編集者フォルダ管理者、またはフォルダ移動の役割の一部です。リソースがフォルダ内にない場合は、組織ノードでこの権限が必要になります。

プロジェクトをフォルダに移動するには:

Console

  1. Google Cloud Platform Console で [プロジェクトとフォルダを管理] ページを開きます。

    Google Cloud Platform Console を開く

  2. ページの左上にある [組織] プルダウンから組織を選択します。
  3. プロジェクトの行をクリックして、プロジェクトとフォルダのリストからプロジェクトを選択します。プロジェクトの名前はクリックしないでください。クリックすると、プロジェクトの IAM ページに移動します。
  4. 行のオプション メニュー(3 つの点のアイコン)をクリックして、[移動] をクリックします。

    プロジェクトの移動

  5. [参照] をクリックして、プロジェクトの移動先のフォルダを選択します。

  6. [移動] をクリックします。

gcloud

gcloud alpha projects move PROJECT_ID [OPTIONAL_FLAGS]

ここで:

  • [PROJECT_ID] は、移動するプロジェクトの ID です。
  • [OPTIONAL_FLAGS] は、--folder、--help、--organization または -h です。

フォルダにプロジェクトを移動する場合のポリシーに関する考慮事項

フォルダ間でプロジェクトを移動する前に、ポリシーの影響を十分に考慮する必要があります。プロジェクト レベルで定義した IAM ポリシーはプロジェクトとともに自動的に移動しますが、移動元または移動先の親レベルで定義したポリシーは移動しません。

移動先のフォルダに同じポリシーがないと、プロジェクトに対するアクセス権を継承しているユーザーがアクセス権を失う可能性があります。また、IAM 役割を変更すると、正しい権限を復旧するまで、一部の機能が機能しなくなります。

たとえば、サービス アカウントにフォルダ A のストレージ オブジェクト作成者が関連付けられているとします。このフォルダには、フォルダ A の任意のプロジェクトの Google Cloud Storage にデータをアップロードする権限があります。ここで、権限の異なるフォルダ B にプロジェクトの 1 つを移動します。このプロジェクトのサービス アカウントはデータのアップロード権限を失い、サービスが停止します。

移動元と移動先のフォルダで組織ポリシーが定義されている場合も同様です。IAM ポリシーと同じように、組織ポリシーも継承されます。したがって、移動元と移動先のフォルダで組織ポリシーが一致していなければなりません。

組織ポリシーの詳細については、組織ポリシー サービスの概要をご覧ください。

フォルダを別のフォルダに移動する

フォルダを別のフォルダに移動するには、移動元と移動先の両方のフォルダにフォルダ移動の役割が必要です。

Console

コンソールでフォルダを他のフォルダに移動するプロセスは、プロジェクトの移動と似ています。

  1. Google Cloud Platform Console で [プロジェクトとフォルダを管理] ページを開きます。

    Google Cloud Platform Console を開く

  2. ページの左上にある [組織] プルダウンから組織を選択します。
  3. フォルダの行をクリックして、プロジェクトとフォルダのリストからフォルダを選択します。
  4. 行のオプション メニュー(3 つの点のアイコン)をクリックして、[移動] をクリックします。
  5. [参照] をクリックして、フォルダの移動先のフォルダを選択します。
  6. [移動] をクリックします。

gcloud

組織のリソースにフォルダを移動するには、gcloud コマンドライン ツールの次のコマンドを実行します。

gcloud alpha resource-manager folders move [FOLDER_ID] \
  --organization=[PARENT_ID]

フォルダを別のフォルダに移動するには:

gcloud alpha resource-manager folders move [FOLDER_ID] \
  --folder=[PARENT_ID]

ここで:

  • [FOLDER_ID] は、移動するフォルダの ID です。
  • [PARENT_ID] は、親組織の組織 ID または親フォルダのフォルダ ID です。

API

JSON リクエスト:

request_json= '{
   destinationParent: "folders/[DESTINATION_FOLDER_ID]"
}'

フォルダを移動する curl リクエスト:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v2/folders/[DISPLAY_NAME]:move

ここで:

  • [DESTINATION_FOLDER_ID] は、別のフォルダの移動先とするフォルダの ID です。例: 98765
  • [DISPLAY_NAME] は、移動するフォルダの表示名です。例: "My Awesome Folder"

フォルダ移動に対するレスポンス:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  }
}

オペレーションを取得する curl リクエスト:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v1/operations/fm.1234567890

オペレーション取得に対するレスポンス:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.Folder",
    "name": "folders/12345",
    "parent": "folders/98765",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-20T00:54:44.295Z"
  }
}

フォルダとプロジェクトを表示または一覧表示する

フォルダを表示または一覧表示するには、組織閲覧者フォルダ閲覧者の役割が必要です。

フォルダとプロジェクトを表示または一覧表示するには:

Console

  1. Google Cloud Platform Console で [プロジェクトとフォルダを管理] ページを開きます。

    [プロジェクトとフォルダを管理] ページに移動

  2. ページの左上にある [組織] プルダウンから組織を選択します。組織のすべてのプロジェクトとフォルダが表示されます。このリストには、作成したフォルダのみが表示されます。
  3. ツリーの任意の行を選択して、フォルダまたはプロジェクトにオペレーションを実行します。

  4. プロジェクトまたはフォルダの名前 / ID を入力して、リストをフィルタリングします。

gcloud

フォルダを表示するには、describe コマンドを使用します。

   gcloud alpha resource-manager folders describe [FOLDER_ID]

   name: folders/245321 \
   parent: organizations/2518 \
   display_name: Super Fantastic Folder \
   lifecycle_state: ACTIVE \
   create_time: <timestamp info …> \
   update_time: <timestamp info …> \

ここで:

  • [FOLDER_ID] は、表示するフォルダの ID です。

    組織の下のフォルダを一覧表示するには、list コマンドを使用します。

    gcloud alpha resource-manager folders list
    --organization [ORGANIZATION_ID]

    ここで:

  • [ORGANIZATION_ID] は、子フォルダのリストを表示する組織の ID です。

    このコマンドは、指定した組織 ID の子フォルダを表示する表を出力します。

    --folder フラグを指定して list コマンドを実行すると、別のフォルダの下のフォルダを一覧表示できます。

    gcloud alpha resource-manager folders list
    --folder [FOLDER_ID]

    ここで:

  • [FOLDER_ID] は、子フォルダのリストを表示するフォルダの ID です。

    組織またはフォルダの下のプロジェクトを一覧表示するには、projects list コマンドと filter 引数を使用します。

    gcloud alpha projects list
    --filter=" parent.id: '[FOLDER_OR_ORGANIZATION_ID]' "

    ここで:

  • [FOLDER_OR_ORGANIZATION_ID] は、子プロジェクトのリストを表示するフォルダまたは組織の ID です。

API

フォルダを取得する curl リクエスト:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v2/[FOLDER_NAME]

ここで:

  • [FOLDER_NAME] は、フォルダ名です。例: folders/123

フォルダの一覧を取得する curl リクエスト:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v2/folders?parent=[PARENT_NAME]

ここで:

  • [PARENT_NAME] は、作成するフォルダの親リソースの名前です。例: organizations/123folders/123

gcloud コマンドライン インターフェースの使用

gcloud コマンドライン ツールで Folders API を操作するためのコマンドは、gcloud alpha resource-manager folders コマンド グループに含まれています。

作成

新しいフォルダを作成するには、作成するフォルダの名前とフォルダを作成する組織またはフォルダの ID をフラグに指定して、gcloud alpha resource-manager folders create を使用します。

gcloud alpha resource-manager folders create \
  --display-name="Super Fantastic Folder" \
  --organization=2518

Created Folder 245321.

表示

フォルダを表示するには、表示するフォルダの ID を指定して gcloud alpha resource-manager folders describe を使用します。

gcloud alpha resource-manager folders describe 245321
name: folders/245321
parent: organizations/2518
display_name: Super Fantastic Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <timestamp info …>

リスト

フォルダの内容を一覧表示するには、--folder フラグにフォルダ ID を指定して gcloud alpha resource-manager folders list を使用します。--organization フラグを使用すると、組織の最上位のフォルダの一覧表示もできます。

gcloud alpha resource-manager folders list --folder 245321
<table output showing the folders underneath the folder with the specified ID>

gcloud alpha resource-manager folders list --organization 2518
<table output showing folders in this Organization but not in any folder>

--filter フラグに親フォルダまたは組織の ID を渡し、gcloud alpha projects list コマンドを使用してプロジェクトを一覧表示できます。

gcloud alpha projects list --filter=" parent.id: '245321' "
<table output showing the projects underneath the resource with the specified ID>

更新

フォルダを更新するには、gcloud alpha resource-manager folders update コマンドを使用します。現在、更新できるのはフォルダの display_name フィールドだけです。

gcloud alpha resource-manager folders update \
  --display-name="Mega Incredible Folder" 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

削除

フォルダの削除と削除の取り消しはコマンドラインで行います。フォルダを削除するには、フォルダ管理者またはフォルダ閲覧者の役割が必要です。フォルダは空の場合のみ削除できます。

gcloud alpha resource-manager folders delete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: DELETE_REQUESTED
create_time: <timestamp info …>
update_time: <recent timestamp info …>

gcloud alpha resource-manager folders undelete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

プロジェクトの移動

既存の gcloud projects create コマンドと gcloud projects move コマンドを使用すると、フォルダにプロジェクトを作成したり、別のフォルダにプロジェクトを移動したりできます。また、gcloud alpha resource-manager folders move. でもフォルダを移動できます。

gcloud alpha projects create --folder=245321 fancy-folder-project
project_id: fancy-folder-project
project_number: 905283
parent:
  type: "folder"
  id: 245321
other fields …

gcloud alpha projects move --folder=245321 soon-to-be-fancy-project
project_id: soon-to-be-fancy-project
project_number: 428714
parent:
  type: "folder"
  id: 245321
other fields …

長時間実行オペレーション

フォルダの作成など、一部のフォルダ オペレーションでは処理に時間がかかる場合があります。マルチタスクを容易に実行できるように、一部の folders コマンドは非同期で実行できます。これらのコマンドで --async フラグを使用すると、処理が非同期で実行されます。これにより、オペレーションの完了を待たずに、長時間実行オペレーションをすぐに終了することができます。gcloud alpha resource-manager operations describe コマンドを使用すると、このオペレーションをポーリングできます。現在、非同期で実行できるコマンドは folders createfolders move だけです。

gcloud alpha resource-manager folders create \
  --display-name="Awe-Inspiring Async Folder" \
  --organization=2518 \
  --async

name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: false

[wait for some time …]

gcloud alpha resource-manager operations describe fc.8572
name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: true
response:
  name: folders/6428
  parent: organizations/2518
  display_name: Awe-Inspiring Async Folder
  lifecycle_state: ACTIVE
  create_time: <recent timestamp info …>
  update_time: <recent timestamp info …>
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Resource Manager のドキュメント