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 organizzazioni possono utilizzare le cartelle per raggruppare i progetti all'interno del nodo organizzazione in una gerarchia. Ad esempio, la tua organizzazione potrebbe contenere più reparti, ognuno con il proprio set 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 i 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 qui sotto, l'organizzazione "Azienda" ha cartelle che rappresentano due dipartimenti, "Dept X" e "Dept Y" e una cartella, "Infrastruttura condivisa", per elementi che potrebbero essere comuni a entrambi i reparti. Nella sezione "Dept. Y", i team sono stati organizzati in due team e, all'interno delle cartelle dei team, organizzano ulteriormente in base ai prodotti. La cartella per "Prodotto 1" contiene inoltre tre progetti, ciascuno con le risorse necessarie per il progetto. Ciò offre un'elevata flessibilità nell'assegnazione di criteri IAM e criteri di organizzazione al giusto livello di granularità.

Esempio di gerarchia di 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, l'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 hanno una risorsa dell'organizzazione. Per saperne di più sull'acquisizione di una risorsa dell'organizzazione, vedi Creare e gestire le organizzazioni.

Se stai cercando il modo migliore per utilizzare le cartelle, ti consigliamo di:

  1. Consulta la pagina relativa al controllo dell'accesso per le cartelle che utilizzano IAM. L'argomento descrive come controllare chi ha accesso alle cartelle e le risorse che contengono.
  2. Scopri come impostare le autorizzazioni per le cartelle. Le cartelle supportano una serie di ruoli IAM diversi. Se vuoi configurare autorizzazioni globali per consentire agli utenti di visualizzare la struttura dei loro progetti, concedi all'intero dominio i ruoli Visualizzatore organizzazione e Visualizzatore cartelle a livello di organizzazione. Per limitare la visibilità ai rami della tua gerarchia di cartelle, concedi il ruolo Visualizzatore cartelle alla cartella o alle cartelle che vuoi rendere visibili agli utenti.
  3. Creazione di cartelle. Durante la pianificazione di come organizzare le risorse Cloud, ti consigliamo di iniziare con una singola cartella come sandbox, in cui puoi provare quale gerarchia è più adatta per la tua organizzazione. Pensa alle cartelle in termini di limiti di isolamento tra le risorse e collega i punti per i criteri di accesso e configurazione. Puoi scegliere di creare cartelle per contenere le risorse che appartengono a diversi reparti e assegnare ruoli di amministratore alle cartelle per delegare il privilegio di amministratore. Le cartelle possono essere utilizzate anche per raggruppare le 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 sopra. Questa struttura è detta gerarchia di cartelle. Quando crei una gerarchia di cartelle, tieni presente quanto segue:

  • Puoi nidificare le cartelle fino a 10 (dieci) livelli di profondità.
  • Una cartella principale non può contenere più di 300 cartelle. Si riferisce solo alle cartelle secondarie dirette. Le 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 per singole cartelle a gruppi di utenti specifici. Per scoprire di più su questi ruoli, vedi Controllo dell'accesso per le cartelle tramite IAM. Ti consigliamo inoltre di consultare le nostre best practice per identificare la configurazione ottimale per le autorizzazioni per le cartelle.

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

Per impostare le autorizzazioni per le cartelle:

console

  1. In Google Cloud Console, apri la pagina Gestisci risorse.

    Apri la pagina Gestisci risorse

  2. Fai clic sull'elenco a discesa Organizzazione in alto a sinistra, quindi seleziona la tua organizzazione dall'elenco delle risorse.

  3. Nella casella di testo Aggiungi membri a destra, inserisci il tuo indirizzo email.

  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 mediante l'interfaccia a riga di comando di Google Cloud. Per farlo, esegui questo comando:

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

Server

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:

  • [ORGANIZATION_NAME] è il nome dell'organizzazione di cui viene impostato il criterio IAM, ad esempio organizations/123.

Creazione delle cartelle in corso...

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

Quando crei una cartella, devi assegnarle un nome. I nomi delle cartelle devono soddisfare i seguenti requisiti:

  • Il nome può contenere lettere, cifre, spazi, trattini e trattini bassi.
  • Il nome visualizzato della cartella deve iniziare e terminare con una lettera o una cifra.
  • Il nome deve essere compreso tra 3 e 30 caratteri.
  • Il nome deve essere distinto da tutte le altre cartelle che condividono il rispettivo elemento 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 in Google Cloud Console:

    Apri la pagina Gestisci risorse

  2. Assicurati che il nome della risorsa della tua 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 nella quale vuoi creare una nuova cartella.

    1. Fai clic su Crea.

gcloud

Le cartelle possono essere create in modo programmatico mediante l'interfaccia a riga di comando di Google Cloud.

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

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

Per creare una cartella la cui cartella principale è un'altra:

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

Dove:

  • [DISPLAY_NAME] è il nome visualizzato della cartella. Due cartelle con lo stesso elemento principale possono condividere un nome visualizzato. 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 principale se il genitore è una risorsa dell'organizzazione.
  • [FOLDER_ID] è l'ID della cartella principale, se la cartella principale è una cartella.

Server

È possibile creare cartelle con una richiesta API.

JSON della richiesta:

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

Richiesta di creazione cartelle curl:

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

Dove:

  • [DISPLAY_NAME] è il nome visualizzato della nuova cartella, ad esempio"La mia fantastica cartella".
  • [ORGANIZATION_NAME] è il nome della risorsa dell'organizzazione con cui stai creando la cartella, ad esempio organizations/123.

Risposta relativa alla creazione della cartella:

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

Richiesta Get curl:

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

Risposta Get Get Operations:

{
  "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 principale.

console

  1. In Google Cloud Console, 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 dell'organizzazione.

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

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

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

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

gcloud

Puoi configurare l'accesso alle cartelle in modo programmatico mediante l'interfaccia a riga di comando di Google Cloud 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 di criteri per la cartella.

Server

Il metodo setIamPolicy imposta il criterio di controllo dell'accesso su una cartella, sostituendo qualsiasi criterio esistente. Il campo resource deve corrispondere al 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 di cui viene impostato il criterio IAM, ad esempio cartelle/123.

Creazione di un progetto in una cartella

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

console

  1. In Google Cloud Console, apri la pagina Gestisci risorse.

    Apri Google Cloud Console

  2. Vai alla pagina Gestisci risorse.
  3. Seleziona la tua organizzazione dal menu a discesa Organizzazione nella parte superiore sinistra della 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.

Server

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 che viene creato, ad esempio my-awesome-proj-123.
  • [DISPLAY_NAME] è il nome visualizzato del progetto in fase di creazione.
  • [PARENT_ID] è l'ID del publisher principale con cui viene creato, ad esempio 123
  • [PARENT_TYPE] è il tipo di principale, ad esempio "cartella" o "Organizzazione"

Non includere informazioni sensibili nel nome della cartella o in altri nomi di 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

Prima di spostare un progetto all'interno o all'esterno di una cartella, devi valutare attentamente le implicazioni dei criteri. I criteri di Identity and Access Management che definisci a livello di progetto verranno spostati insieme al progetto, a differenza dei criteri ereditati da una risorsa principale.

Quando sposti un progetto, verranno spostati tutti i criteri di Identity and Access Management o i criteri dell'organizzazione direttamente collegati. Tuttavia, un progetto nella gerarchia delle risorse dipende anche dai criteri che eredita dalle risorse padre. Se un progetto eredita un ruolo IAM che fornisce agli utenti le autorizzazioni per utilizzare un determinato servizio, gli utenti non avranno accesso a tale servizio nella destinazione a meno che non ereditino l'autorizzazione anche nella 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 i dati in Cloud Storage in qualsiasi progetto nella Cartella A. Se hai spostato uno di questi progetti Cartella B, che non ha le stesse autorizzazioni ereditate, l'account di servizio per quel progetto perderà la possibilità di caricare i 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, i criteri dell'organizzazione vengono ereditati. Di conseguenza, devi assicurarti che i criteri dell'organizzazione siano coerenti tra le cartelle di origine e di destinazione.

Per scoprire di più sui criteri dell'organizzazione, vedi Introduzione al servizio dei criteri dell'organizzazione.

Per spostare un progetto, è necessario il ruolo IAM di spostamento del progetto (roles/resourcemanager.projectMover) sia nella cartella di origine che nella cartella di destinazione. Se la risorsa non si trova in una cartella, devi avere questo ruolo nel nodo organizzazione.

Questi ruoli ti assegnano le seguenti autorizzazioni obbligatorie:

  • 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 sul nodo organizzazione

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

console

Per spostare un progetto:

  1. In Google Cloud Console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Seleziona la tua Organizzazione dal menu a discesa Organizzazione nella parte superiore sinistra della 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 pagina IAM del progetto.

  4. Fai clic sul menu opzioni (i 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 da spostare.

  • DESTINATION_TYPE è organization o folder.

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

Server

Per spostare un progetto, puoi utilizzare il metodo v3 projects.move.

Richiesta:

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

Dove:

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

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

In caso di esito positivo, la richiesta restituirà un'operazione che può essere utilizzata per monitorare lo spostamento del progetto.

Spostare 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 della console è simile allo spostamento dei progetti.

  1. In Google Cloud Console, apri la pagina Gestisci risorse.

    Apri Google Cloud Console

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

gcloud

Per spostare una cartella sotto la risorsa Organizzazione, esegui questo comando nell'interfaccia a riga di comando di Google Cloud:

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

Per spostare una cartella sotto 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 organizzazione o l'ID cartella dell'organizzazione o della cartella principale.

Server

JSON della richiesta:

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

Richiesta di spostamento della cartella mobile:

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 che viene spostata, ad esempio "My Awesome Folder".

La risposta Sposta cartella:

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

Richiesta Get curl:

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

Risposta Get Get Operations:

{
  "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 elencazione 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. In Google Cloud Console, apri la pagina Gestisci risorse.

    Apri la pagina Gestisci risorse

  2. Seleziona la tua Organizzazione dal menu a discesa Organizzazione nella parte superiore sinistra della pagina. Tutti i progetti e le cartelle nell'organizzazione sono visualizzati nella pagina. Le cartelle devono essere create prima di essere visualizzate in questo elenco.
  3. Seleziona una riga qualsiasi nell'albero per eseguire operazioni specifiche della cartella o del progetto.

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

gcloud

Per visualizzare una cartella, utilizza il comando describe.

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

Dove:

  • [FOLDER_ID] è l'ID della cartella che vuoi visualizzare.

    Per elencare le cartelle di un'organizzazione, utilizza il comando list.

    Elenco delle cartelle di gcloud resource-manager
    --organization [ORGANIZATION_ID]

    Dove:

  • [ORGANIZATION_ID] è l'ID dell'organizzazione per cui vuoi visualizzare un elenco delle cartelle secondarie.

    Il comando restituisce una tabella che mostra le cartelle secondarie dell'ID organizzazione specificato.

    Il comando list può anche elencare le cartelle sotto un'altra cartella, utilizzando il flag --folder.

    Elenco delle cartelle di gcloud resource-manager
    --folder [FOLDER_ID]

    Dove:

  • [FOLDER_ID] è l'ID della cartella per cui vuoi visualizzare un elenco delle cartelle secondarie.

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

    Elenco dei progetti gcloud
    --filternofollowquot; parent.id: '[FOLDER_OR_ORGANIZATION_ID]' "

    Dove:

  • [FOLDER_OR_ORGANIZATION_ID] è l'ID della cartella o dell'organizzazione per cui vuoi visualizzare un elenco di progetti secondari.

Server

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 per 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 principale sotto cui stai creando la cartella, ad esempio organizations/123 o folders/123.

Utilizzo di Google Cloud CLI

I comandi per interagire con l'API folders con 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 dell'organizzazione o della cartella in cui vuoi che sia stata creata.

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

Created Folder 245321.

Visualizza

Per visualizzare una cartella, utilizza 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 e passa l'ID della cartella nel flag --folder. Questo può anche elencare le cartelle di primo livello sotto un'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 le quali è 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 principale o l'ID 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 degli elenchi, vedi Elencare 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>

Aggiornamento

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

È possibile eliminare e annullare l'eliminazione delle cartelle dalla riga di comando. Un utente deve avere il ruolo di Amministratore cartelle o Editor cartella per avere l'autorizzazione a 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

Puoi creare progetti nelle cartelle, che possono essere spostati nelle cartelle utilizzando i comandi gcloud projects create e gcloud projects move esistenti. Puoi spostare le cartelle anche 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 relativa creazione, possono richiedere molto tempo. Per semplificare il multitasking, alcuni comandi delle cartelle ti consentono di eseguirli in modo asincrono. Questi comandi accettano un flag --async per abilitare il comportamento asincrono, facendo in modo che venga restituita un'operazione a lunga esecuzione immediatamente anziché in attesa del completamento dell'operazione. Puoi eseguire il sondaggio di questa operazione autonomamente con il comando gcloud beta resource-manager operations describe. Attualmente, solo i comandi folders create e folders move consentono l'uso 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 …>