Creazione e gestione delle cartelle

Le cartelle sono nodi nella gerarchia delle risorse di Cloud Platform. Una cartella può contenere progetti, altre cartelle o una combinazione di entrambi. Le risorse dell'organizzazione possono utilizzare le cartelle per raggruppare i progetti nel nodo delle risorse dell'organizzazione in una gerarchia. Ad esempio, la risorsa dell'organizzazione potrebbe contenere più reparti, ognuno con il proprio insieme di risorse Google Cloud. Le cartelle ti consentono di raggruppare queste risorse in base al reparto. Le cartelle vengono utilizzate per raggruppare le risorse che condividono criteri IAM comuni. Mentre una cartella può contenere più cartelle o risorse, una determinata cartella o risorsa può avere esattamente un elemento padre.

Nel diagramma seguente, la risorsa organizzazione "Azienda" ha cartelle che rappresentano due reparti, "Dept X" e "Dept Y", e una cartella, "Infrastruttura condivisa", per gli elementi comuni a entrambi i reparti. Nella sezione "Reparto Y" sono stati organizzati in due team e all'interno delle cartelle del team sono ulteriormente organizzati per prodotto. La cartella per "Prodotto 1" contiene inoltre tre progetti, ciascuno con le risorse necessarie per il progetto. Ciò offre un elevato grado di flessibilità nell'assegnazione dei criteri IAM e dell'organizzazione al giusto livello di granularità.

Esempio di gerarchia delle cartelle

Puoi utilizzare i criteri IAM a livello di cartella per controllare l'accesso alle risorse contenute nella cartella. Ad esempio, se a un utente viene concesso il ruolo Amministratore istanze Compute per una cartella, questo utente avrà il ruolo Amministratore istanze Compute per tutti i progetti nella cartella.

Prima di iniziare

La funzionalità delle cartelle è disponibile solo per i clienti di Google Workspace e Cloud Identity che dispongono di una risorsa organizzazione. Per ulteriori informazioni sull'acquisizione di una risorsa organizzazione, consulta Creazione e gestione delle organizzazioni.

Se stai valutando come utilizzare al meglio le cartelle, ti consigliamo di:

  1. Vedi Controllo dell'accesso alle cartelle utilizzando IAM. L'argomento descrive come puoi controllare chi ha quale accesso alle cartelle e alle risorse che contengono.
  2. Scopri come impostare le autorizzazioni per le cartelle. Le cartelle supportano una serie di ruoli IAM diversi. Se vuoi configurare un'ampia configurazione delle autorizzazioni in modo che gli utenti possano vedere la struttura dei loro progetti, concedi all'intero dominio i ruoli Visualizzatore organizzazione e Visualizzatore cartelle a livello di risorsa dell'organizzazione. Per limitare la visibilità ai rami della gerarchia di cartelle, concedi il ruolo Visualizzatore cartelle alla cartella o alle cartelle che vuoi che gli utenti vedano.
  3. Creazione di cartelle. Quando pianifichi come organizzare le risorse Cloud, ti consigliamo di iniziare con una singola cartella come sandbox, in cui puoi sperimentare la gerarchia più adatta per la risorsa dell'organizzazione. Pensa alle cartelle in termini di limiti di isolamento tra le risorse e punti di collegamento per i criteri di accesso e configurazione. Puoi scegliere di creare cartelle per contenere risorse che appartengono a reparti diversi e assegnare ruoli di amministratore sulle cartelle per delegare i privilegi di amministratore. Le cartelle possono essere utilizzate anche per raggruppare risorse che appartengono ad applicazioni o ambienti diversi, come sviluppo, produzione e test. Utilizza le cartelle nidificate per modellare questi diversi scenari.

Una situazione comune è la creazione di cartelle che a loro volta contengono cartelle o progetti aggiuntivi, come mostrato nell'immagine riportata sopra. Questa struttura è denominata gerarchia di cartelle. Quando crei una gerarchia di cartelle, tieni presente quanto segue:

  • Puoi nidificare le cartelle con massimo 10 (dieci) livelli di profondità.
  • Una cartella principale non può contenere più di 300 cartelle. Si riferisce solo alle cartelle secondarie dirette. Queste cartelle secondarie possono a loro volta contenere cartelle o progetti aggiuntivi.
  • I nomi visualizzati delle cartelle devono essere univoci all'interno dello stesso livello della gerarchia.

Impostazione delle autorizzazioni per la gestione delle cartelle

Per accedere alle cartelle e gestirle, devi assegnare ruoli IAM specifici della cartella a gruppi di utenti specifici. Per saperne di più su questi ruoli, vedi Controllo dell'accesso per le cartelle utilizzando IAM. Ti consigliamo inoltre di esaminare le nostre best practice per identificare la configurazione ottimale per le autorizzazioni delle cartelle.

Inizialmente, solo l'amministratore dell'organizzazione può assegnare il ruolo Amministratore cartelle per la risorsa dell'organizzazione. Gli account successivi a cui viene assegnato questo ruolo possono concederlo ad altri account.

Per impostare le autorizzazioni per le cartelle:

console

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la pagina Gestisci risorse

  2. Fai clic sull'elenco a discesa Organizzazione in alto a sinistra e seleziona l'organizzazione dall'elenco delle risorse.

  3. Inserisci il tuo indirizzo email nella casella di testo Aggiungi membri a destra.

  4. Nell'elenco a discesa Seleziona un ruolo, vai alla categoria Resource Manager e seleziona il ruolo Amministratore cartelle.

  5. Fai clic su Aggiungi per concedere il nuovo ruolo.

gcloud

Le cartelle possono essere create in modo programmatico utilizzando Google Cloud CLI. Per farlo, esegui questo comando:

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

API

Il JSON della richiesta:

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", ] } , ] } }'

La richiesta curl:

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

Dove:

  • [ORGANIZZAZIONE_NAME] è il nome dell'organizzazione per cui è stato impostato il criterio IAM, ad esempio organizations/123.

Creazione di cartelle

Per creare cartelle, devi disporre del ruolo Amministratore cartelle o Creatore cartella a livello di livello superiore. Ad esempio, per creare cartelle a livello di organizzazione, devi avere uno di questi ruoli a livello di organizzazione.

Durante la creazione di una cartella, devi assegnarle un nome. I nomi delle cartelle devono soddisfare i seguenti requisiti:

  • Il nome può contenere lettere, numeri, spazi, trattini e trattini bassi.
  • Il nome visualizzato della cartella deve iniziare e terminare con una lettera o un numero.
  • Il nome deve essere compreso tra 3 e 30 caratteri.
  • Il nome deve essere diverso da tutte le altre cartelle che condividono la cartella principale.

Per creare una cartella:

Console

Le cartelle possono essere create nell'interfaccia utente utilizzando la sezione "Gestisci progetti e cartelle".

  1. Vai alla pagina Gestisci risorse nella console Google Cloud:

    Apri la pagina Gestisci risorse

  2. Assicurati che il nome della risorsa dell'organizzazione sia selezionato nell'elenco a discesa dell'organizzazione nella parte superiore della pagina.

  3. Fai clic su Crea cartella.

  4. Nella casella Nome cartella, inserisci il nome della nuova cartella.

  5. In Destinazione, fai clic su Sfoglia, quindi seleziona la risorsa o la cartella dell'organizzazione in cui vuoi creare la nuova cartella.

    1. Fai clic su Crea.

gcloud

Le cartelle possono essere create in modo programmatico utilizzando Google Cloud CLI.

Per creare una cartella nella risorsa dell'organizzazione utilizzando lo strumento a riga di comando gcloud, esegui questo comando.

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

Per creare una cartella la cui cartella principale corrisponde a un'altra:

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

Dove:

  • [DISPLAY_NAME] è il nome visualizzato della cartella. Non esistono due cartelle con lo stesso nome visualizzato che condividono lo stesso nome. Il nome visualizzato deve iniziare e terminare con una lettera o una cifra, può contenere lettere, cifre, spazi, trattini e trattini bassi e non può superare i 30 caratteri.
  • [ORGANIZATION_ID]è l'ID della risorsa dell'organizzazione padre se la risorsa padre è una risorsa dell'organizzazione.
  • [FOLDER_ID] è l'ID della cartella principale, se quella principale è una cartella.

API

Le cartelle possono essere create con una richiesta API.

Il JSON della richiesta:

request_json= '{
  display_name: DISPLAY_NAME,
  parent: ORGANIZATION_NAME
}'

La richiesta curl per la creazione di una cartella:

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

Dove:

  • [DISPLAY_NAME] è il nome visualizzato della nuova cartella, ad esempio "La mia cartella perfetta".
  • [ORGANIZATION_NAME] è il nome della risorsa dell'organizzazione in base alla quale stai creando la cartella, ad esempio organizations/123.

La risposta Crea cartella:

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

Richiesta curl dell'operazione Get:

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

La risposta dell'operazione di recupero:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.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"
  }
}

Configurazione dell'accesso alle cartelle

Per configurare l'accesso alle cartelle, devi disporre del ruolo Amministratore IAM cartella o Amministratore cartelle a livello di livello padre.

Console

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la pagina Gestisci risorse

  2. Fai clic sull'elenco a discesa Organizzazione in alto a sinistra e seleziona la risorsa Organizzazione.

  3. Seleziona la casella di controllo accanto al progetto di cui vuoi modificare le autorizzazioni.

    1. Nel riquadro Informazioni a destra, in Autorizzazioni, inserisci gli indirizzi email dei membri che vuoi aggiungere.

    2. Nell'elenco a discesa Seleziona un ruolo, scegli il ruolo che vuoi concedere ai membri.

    3. Fai clic su Aggiungi. Viene visualizzata una notifica che conferma l'aggiunta o l'aggiornamento del nuovo ruolo dei membri.

gcloud

Puoi configurare l'accesso alle cartelle in modo programmatico utilizzando Google Cloud CLI o l'API.

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

In alternativa:

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

Dove:

  • [FOLDER_ID] è l'ID della nuova cartella.
  • [POLICY_FILE] è il percorso di un file dei criteri per la cartella.

API

Il metodo setIamPolicy imposta il criterio di controllo dell'accesso a una cartella, sostituendo qualsiasi criterio esistente. Il campo resource deve essere il nome della risorsa della cartella, ad esempio folders/1234.

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

La richiesta curl:

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

Dove:

  • [FOLDER_NAME] è il nome della cartella per cui è stato impostato il criterio IAM, ad esempio cartelle/123.

Creazione di un progetto in una cartella

Per creare un progetto in una cartella, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator) nella cartella. Questo ruolo può essere ereditato da una cartella padre.

console

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la console Google Cloud

  2. Vai alla pagina Gestisci risorse.
  3. Seleziona la risorsa Organizzazione dal menu a discesa Organizzazione in alto a sinistra nella pagina.
  4. Fai clic su Crea progetto.
  5. Inserisci un Nome progetto.
  6. Nella casella Destinazione, fai clic su Sfoglia per selezionare la cartella in cui vuoi creare il progetto.

  7. Fai clic su Crea.

gcloud

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

Dove:

  • [PROJECT_ID] è l'ID dell'ID progetto da creare.
  • [FOLDER_ID] è l'ID della cartella in cui deve essere creato il progetto.

API

Il JSON della richiesta:

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

La richiesta curl:

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

Dove:

  • [PROJECT_ID] è l'ID del progetto in fase di creazione, ad esempio my-awesome-proj-123.
  • [DISPLAY_NAME] è il nome visualizzato del progetto in fase di creazione.
  • [PARENT_ID] è l'ID dell'elemento principale creato, ad esempio 123
  • [PARENT_TYPE] è il tipo dell'elemento principale, come "cartella" o "Organizzazione"

Non includere informazioni sensibili nel nome della cartella o nei nomi di altre risorse. Qualsiasi riferimento alla cartella o alle risorse correlate espone il nome della cartella e il nome della risorsa.

Spostamento di un progetto in una cartella

Devi valutare attentamente eventuali implicazioni dei criteri prima di spostare un progetto all'interno o all'esterno di una cartella. I criteri di Identity and Access Management che definisci a livello di progetto verranno spostati insieme al progetto, al contrario dei criteri ereditati da una risorsa padre.

Quando sposti un progetto, tutti i criteri di Identity and Access Management o i criteri dell'organizzazione direttamente collegati verranno spostati insieme al progetto. Tuttavia, un progetto nella gerarchia delle risorse è interessato anche dai criteri che eredita dalle risorse padre. Se un progetto eredita un ruolo IAM che fornisce agli utenti l'autorizzazione per utilizzare un determinato servizio, gli utenti non avranno accesso a quel servizio nella destinazione, a meno che quest'ultimo non erediti anche l'autorizzazione a quella di destinazione.

Ad esempio, supponiamo che un account di servizio abbia il ruolo Creatore oggetti Storage associato a un utente nella Cartella A. L'account di servizio dispone delle autorizzazioni per caricare dati in Cloud Storage in qualsiasi progetto nella Cartella A. Se hai spostato uno di questi progetti nella Cartella B, che non ha le stesse autorizzazioni ereditate, l'account di servizio per il progetto perde la possibilità di caricare dati, causando un'interruzione del servizio.

Queste stesse considerazioni si applicano se i criteri dell'organizzazione sono definiti nelle cartelle di origine e di destinazione. Come i criteri IAM, quelli dell'organizzazione vengono ereditati. Di conseguenza, devi assicurarti che i criteri dell'organizzazione siano coerenti tra le cartelle di origine e di destinazione.

Per saperne di più sui criteri dell'organizzazione, vedi Introduzione al servizio Criteri dell'organizzazione.

Per spostare un progetto, devi disporre del ruolo IAM Autore spostamento progetto (roles/resourcemanager.projectMover) sia nella cartella di origine sia in quella di destinazione. Se la risorsa non si trova in una cartella, hai bisogno di questo ruolo nella risorsa organizzazione.

Questi ruoli offrono le seguenti autorizzazioni richieste:

  • resourcemanager.projects.update nel progetto
  • Se la risorsa si trova in una cartella: resourcemanager.projects.move nella cartella di origine e nella destinazione
  • Se la risorsa non si trova in una cartella: resourcemanager.projects.move nella risorsa dell'organizzazione

Puoi ottenere queste autorizzazioni anche con i ruoli personalizzati o altri ruoli predefiniti.

Console

Per spostare un progetto:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Seleziona la tua organizzazione dal menu a discesa Organizzazione in alto a sinistra nella pagina.

  3. Fai clic sulla riga del progetto per selezionare il progetto dall'elenco delle risorse. Tieni presente che non devi fare clic sul nome del progetto per accedere alla relativa pagina IAM.

  4. Fai clic sul menu opzioni (i puntini di sospensione verticali) nella riga e fai clic su Sposta.

  5. Fai clic su Sfoglia per selezionare la cartella in cui vuoi spostare il progetto.

  6. Fai clic su Sposta.

gcloud

Per spostare un progetto, esegui il comando gcloud beta projects move:

gcloud beta projects move PROJECT_ID \
--DESTINATION_TYPE DESTINATION_ID

Dove:

  • PROJECT_ID è l'ID o il numero del progetto che vuoi spostare.

  • DESTINATION_TYPE è organization o folder.

  • DESTINATION_ID è l'ID della risorsa o della cartella dell'organizzazione in cui vuoi spostare il progetto. Puoi specificare un solo target.

API

Puoi utilizzare il metodo v3 projects.move per spostare un progetto.

Richiesta:

POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move
{
  "destinationParent": DESTINATION_PARENT
}

Dove:

  • PROJECT_NAME è il nome del progetto da aggiornare. Ad esempio, projects/415104041262

  • DESTINATION_PARENT è la nuova risorsa o cartella dell'organizzazione padre in cui vuoi spostare il progetto. Ad esempio: organizations/12345678901

Se l'esito è positivo, la richiesta restituirà un'operazione che può essere utilizzata per monitorare lo spostamento del progetto.

Spostamento di una cartella in un'altra cartella

Per spostare una cartella in un'altra cartella, devi disporre dell'autorizzazione resourcemanager.folders.move per le cartelle di origine e di destinazione.

console

Il processo di spostamento delle cartelle in altre cartelle nella console è simile allo spostamento dei progetti.

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la console Google Cloud

  2. Seleziona la risorsa Organizzazione dal menu a discesa Organizzazione in alto a sinistra nella pagina.
  3. Fai clic sulla riga della cartella per selezionarla dall'elenco di progetti e cartelle.
  4. Fai clic sul menu opzioni (i puntini di sospensione verticali) nella riga e fai clic su Sposta.
  5. Fai clic su Sfoglia per selezionare la cartella in cui vuoi spostarla.
  6. Fai clic su Sposta.

gcloud

Per spostare una cartella nella risorsa Organizzazione, esegui questo comando in Google Cloud CLI:

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

Per spostare una cartella in un'altra cartella:

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

Dove:

  • [FOLDER_ID] è l'ID della cartella da spostare.
  • [PARENT_ID] è l'ID risorsa dell'organizzazione o l'ID cartella della risorsa o della cartella dell'organizzazione padre.

API

Il JSON della richiesta:

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

Richiesta di curl dello spostamento della cartella:

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

Dove:

  • [DESTINATION_FOLDER_ID] è l'ID della cartella in cui stai spostando un'altra cartella, ad esempio 98765.
  • [DISPLAY_NAME] è il nome visualizzato della cartella da spostare, ad esempio "La mia cartella perfetta".

La risposta Sposta cartella:

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

Richiesta curl dell'operazione Get:

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

La risposta dell'operazione di recupero:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.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"
  }
}

Visualizzazione o elenco di cartelle e progetti

Per visualizzare o elencare le cartelle, devi disporre dei ruoli Visualizzatore organizzazione e Visualizzatore cartelle.

Per visualizzare o elencare cartelle e progetti:

console

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la pagina Gestisci risorse

  2. Dal selettore di progetti nella parte superiore della pagina, seleziona la risorsa della tua organizzazione. Le cartelle devono essere create prima di essere visualizzate in questo elenco.

  3. Seleziona una riga qualsiasi della struttura ad albero per eseguire operazioni specifiche per cartella o progetto.

  4. Inserisci il nome/l'ID del progetto o della cartella nella ricerca per filtrare l'elenco.

gcloud

Per visualizzare i dettagli di una cartella, usa il comando resource-manager folders describe.

gcloud resource-manager folders describe FOLDER_ID

Sostituisci FOLDER_ID con l'ID della cartella che vuoi visualizzare.

Per elencare le cartelle figlio di una risorsa dell'organizzazione, utilizza il comando resource-manager folders list.

gcloud resource-manager folders list \
  --organization ORGANIZATION_ID

Sostituisci ORGANIZATION_ID con l'ID della risorsa dell'organizzazione per la quale vuoi visualizzare un elenco delle cartelle secondarie.

Per elencare le cartelle figlio di una risorsa cartella, utilizza il comando resource-manager folders list.

gcloud resource-manager folders list \
  --folder FOLDER_ID

Sostituisci FOLDER_ID con l'ID della risorsa cartella per la quale vuoi visualizzare un elenco delle cartelle secondarie.

Per elencare i progetti in un'organizzazione o una cartella, utilizza il comando projects list con l'argomento filter.

gcloud projects list \
  --filter=" parent.id: 'RESOURCE_ID' "

Sostituisci RESOURCE_ID con l'ID dell'organizzazione o della risorsa cartella per la quale vuoi visualizzare un elenco dei progetti figlio.

API

La richiesta curl per ottenere le cartelle:

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

Dove:

  • [FOLDER_NAME] è il nome della cartella, ad esempio folders/123.

La richiesta curl di elencare le cartelle:

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

Dove:

  • [PARENT_NAME] è il nome della risorsa padre in cui stai creando la cartella, ad esempio organizations/123 o folders/123.

Utilizzo di Google Cloud CLI

I comandi per interagire con l'API Subscriptions tramite lo strumento a riga di comando gcloud sono disponibili nel gruppo di comandi gcloud resource-manager folders.

Crea

Per creare una nuova cartella, utilizza gcloud resource-manager folders create con i flag che impostano il nome della cartella e l'ID della risorsa o della cartella dell'organizzazione in cui vuoi crearla.

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

Created Folder 245321.

Visualizza

Per visualizzare una cartella, usa gcloud resource-manager folders describe con l'ID della cartella che vuoi visualizzare.

gcloud 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 …>

Elenco

Per elencare le cartelle sotto una cartella, utilizza gcloud resource-manager folders list, passando l'ID cartella nel flag --folder. In questo modo puoi anche elencare le cartelle di primo livello in una risorsa dell'organizzazione, utilizzando il flag --organization.

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

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

Per includere nell'elenco le cartelle per la quale è richiesta l'eliminazione, aggiungi il flag --show-deleted

gcloud beta resource-manager folders list --folder 245321 --show-deleted
<table output showing all the folders including the delete requested ones underneath the folder with the specified ID>

Puoi elencare i progetti utilizzando il comando gcloud projects list, passando la cartella padre o l'ID risorsa dell'organizzazione nel flag --filter.

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

Per ulteriori informazioni su come le autorizzazioni e i filtri interagiscono con i comandi di elenco, consulta Elenco di tutte le risorse nella gerarchia.

Per cercare cartelle che corrispondono alla query specificata, utilizza gcloud alpha resource-manager folders search, passando la condizione nel flag --query. L'ambito della ricerca è costituito da tutte le cartelle per le quali l'utente dispone dell'autorizzazione di visualizzazione.

gcloud alpha resource-manager folders search --query="name:vij*"
<table output showing the folders with names starting from vij eg. vijeta, vijay-folder>

gcloud alpha resource-manager folders search --query="state:DELETE_REQUESTED"
<table output showing folders for which delete has been requested>

Tutte le cartelle per le quali l'utente dispone dell'autorizzazione di visualizzazione possono essere mostrate utilizzando il comando gcloud folders search.

gcloud folders search
<table output showing all viewable folders>

Aggiorna

Le cartelle possono essere aggiornate con il comando gcloud resource-manager folders update. Al momento, è possibile aggiornare solo il campo display_name di una cartella.

gcloud 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 …>

Elimina

Puoi eliminare le cartelle e annullarne l'eliminazione dalla riga di comando. Un utente deve disporre del ruolo Amministratore cartelle o Editor cartelle per disporre dell'autorizzazione per eliminare una cartella. Puoi eliminare una cartella solo se è vuota.

gcloud 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 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 …>

Spostamento progetto

I progetti possono essere creati in cartelle e spostati in cartelle utilizzando i comandi gcloud projects create e gcloud projects move esistenti. Puoi anche spostare cartelle utilizzando gcloud resource-manager folders move.

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

gcloud 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 …

Operazioni a lunga esecuzione

Alcune operazioni sulle cartelle, come la creazione delle cartelle, possono richiedere molto tempo. Per semplificare il multitasking, alcuni comandi della cartella ti consentono di eseguirli in modo asincrono. Questi comandi accettano un flag --async per abilitare il comportamento asincrono e, di conseguenza, restituiscono immediatamente un'operazione a lunga esecuzione anziché attendere il completamento dell'operazione. Puoi eseguire il polling di questa operazione autonomamente con il comando gcloud beta resource-manager operations describe. Al momento, solo i comandi folders create e folders move consentono l'utilizzo asincrono.

gcloud 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 beta 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 …>