Gestire le risorse API con Apigee Spaces

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Questo argomento descrive come creare e gestire le risorse API in uno spazio. Puoi creare proxy API, flussi condivisi e prodotti API in uno spazio. Le risorse create nello spazio ereditano le stesse autorizzazioni dello spazio.

La creazione di risorse in uno spazio è la stessa di quella in un'organizzazione Apigee, tranne per il fatto che puoi selezionare uno spazio quando crei la risorsa. Puoi creare risorse API dalla riga di comando utilizzando le API Apigee o Apigee in Cloud Console.

Questa guida illustra i passaggi necessari per:

Per una panoramica di Apigee Spaces, consulta Apigee Spaces.

Per ulteriori informazioni sui tipi di risorse dell'API Apigee, consulta:

Prima di iniziare

Prima di iniziare a creare risorse API in Apigee Spaces, assicurati di completare le seguenti attività:

Ruoli e autorizzazioni richiesti

Con l'introduzione di Apigee Spaces, il modo in cui IAM controlla le autorizzazioni necessarie per eseguire alcune operazioni sulle risorse API è cambiato. Se la risorsa API esiste in uno spazio, IAM verificherà le autorizzazioni appropriate a livello di spazio per il membro dello spazio che esegue l'operazione. Per ulteriori informazioni, consulta Ruoli e autorizzazioni di Apigee Spaces e Gerarchia delle autorizzazioni IAM per Apigee Spaces.

Assegnare ruoli e autorizzazioni ai membri dello spazio

Per i membri dello spazio sono disponibili tre ruoli personalizzati:

  • apigee.spaceContentEditor: fornisce l'accesso completo alle risorse che possono essere associate a uno spazio. Questo ruolo deve essere concesso a livello di spazio.
  • apigee.spaceContentViewer: fornisce l'accesso di sola lettura alle risorse che possono essere associate a uno spazio. Questo ruolo deve essere concesso a livello di spazio.
  • apigee.spaceConsoleUser: fornisce le autorizzazioni minime necessarie per gestire le risorse in uno spazio utilizzando la console Google Cloud. Questo ruolo deve essere concesso a Google Cloud livello di progetto agli utenti con accesso alle risorse nello spazio.

I ruoli personalizzati descritti in questa sezione non consentono ai membri dello spazio di eseguire o annullare il deployment di proxy API o flussi condivisi. Se vuoi consentire a un membro dello spazio di gestire i deployment, imposta un criterio IAM a livello di progetto o dell'ambiente Apigee concedendo il ruolo apigee.environment.admin al membro dello spazio. Google Cloud

Puoi assegnare uno o più ruoli a un membro di uno spazio utilizzando uno dei seguenti metodi:

  • Aggiungi il ruolo apigee.spaceContentEditor allo spazio utilizzando l'API e il ruolo apigee.environmentAdmin all'ambiente di destinazione utilizzando l'API.
  • Aggiungi i ruoli al progetto utilizzando l'interfaccia utente di IAM.

Per controllare i ruoli a Google Cloud livello di progetto:

  1. Nella console Google Cloud, vai alla pagina IAM.

    Vai a IAM
  2. Seleziona il progetto.
  3. Nella colonna Principal, individua tutte le righe che ti identificano o un gruppo di cui fai parte. Per sapere a quali gruppi appartieni, contatta il tuo amministratore.

  4. Per tutte le righe che ti specificano o ti includono, controlla la colonna Ruolo per verificare se l'elenco dei ruoli include quelli richiesti.

Per concedere i ruoli

  1. Nella console Google Cloud, vai alla pagina IAM.

    Vai a IAM
  2. Seleziona il progetto.
  3. Fai clic su Concedi l'accesso.
  4. Nel campo Nuovi principali, inserisci il tuo identificatore utente. In genere si tratta dell'indirizzo email di un Account Google.

  5. Nell'elenco Seleziona un ruolo, seleziona un ruolo.
  6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
  7. Fai clic su Salva.

Per verificare le norme IAM applicate a livello di spazio, consulta Gestire membri e ruoli in uno spazio.

Gestire i proxy API in uno spazio

I membri dell'organizzazione Apigee assegnati a uno spazio possono creare proxy API come risorse dello spazio. I membri assegnati solo ad altri spazi non potranno accedere o gestire questi proxy.

Crea un proxy API come risorsa Space utilizzando Apigee nella console Cloud o l'API, come descritto nelle sezioni seguenti.

Apigee nella console Cloud

Per creare un proxy API come risorsa Space utilizzando la console Apigee in Cloud:

  1. Segui i passaggi descritti nella sezione Creare un proxy API.
  2. Nel passaggio 5, in Dettagli del proxy viene visualizzato un campo aggiuntivo in cui puoi selezionare uno spazio per il proxy API. Seleziona uno spazio dalla casella di elenco. Se non vuoi assegnare il proxy API a uno spazio, puoi saltare questo campo.
  3. Fai clic su Avanti per passare al passaggio facoltativo di implementazione della creazione del proxy o fai clic su Crea per creare il proxy senza implementarlo.

API Apigee

Per creare un proxy API come risorsa Space utilizzando le API Apigee, utilizza il seguente comando:

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/apis?name=PROXY_NAME&space=SPACE_NAME&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@PROXY_BUNDLE"

Dove:

  • ORG_NAME è il nome della tua organizzazione Apigee.
  • PROXY_NAME è il nome del proxy API che stai creando. Il nome deve essere univoco a livello globale e non solo all'interno dello spazio.
  • SPACE_NAME è il nome dello spazio in cui stai creando il proxy API.
  • PROXY_BUNDLE è il nome del file del pacchetto del proxy API.

Ad esempio, con il seguente comando, un membro del team red crea un proxy API denominato proxy-1 come risorsa Space red nell'organizzazione acme utilizzando il file proxy-bundle.zip:

curl "https://apigee.googleapis.com/v1/organizations/acme/apis?name=proxy-1&space=red&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data \
    -F "file=@proxy-bundle.zip"

L'esempio seguente mostra la risposta al comando:

{
  "basepaths": ["/proxy-1"],
  "revision": 1,
  "apiProxyId": "proxy-1",
  "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
  "space": "red",
  "createTime": ...,
  "updateTime": ...
}

Gestire i flussi condivisi come risorse di Space

I membri assegnati a uno spazio possono anche creare flussi condivisi come risorse dello spazio. I membri di altri spazi non potranno accedere o gestire questi flussi condivisi.

Crea un flusso condiviso come risorsa Space utilizzando la console Apigee in Cloud o l'API, come descritto nelle sezioni seguenti.

Apigee nella console Cloud

Per creare un flusso condiviso come risorsa Space utilizzando la console Apigee in Cloud:
  1. segui i passaggi descritti in Creare un flusso condiviso nell'interfaccia utente di Apigee per creare un nuovo flusso condiviso da zero o caricare un bundle di flussi esistente.
  2. Nel passaggio 4, nella finestra di dialogo Crea un flusso condiviso viene visualizzato un campo aggiuntivo in cui puoi selezionare uno spazio per il proxy API. Seleziona uno spazio dalla casella di elenco. Se non vuoi assegnare il proxy API a uno spazio, puoi saltare questo campo.
  3. Fai clic su Crea per creare il flusso condiviso.

API Apigee

Per creare un flusso condiviso come risorsa Space utilizzando le API Apigee, utilizza il seguente comando:

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/sharedflows?name=FLOW_NAME&space=SPACE_NAME&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@SHARED_FLOW_BUNDLE"

Dove:

  • ORG_NAME è il nome della tua organizzazione Apigee.
  • FLOW_NAME è il nome del flusso condiviso che stai creando. Il nome deve essere univoco a livello globale e non solo all'interno dello spazio.
  • SPACE_NAME è il nome dello spazio in cui stai creando il flusso condiviso.
  • SHARED_FLOW_BUNDLE è il nome del file del bundle di flussi condiviso.

Ad esempio, con il seguente comando, un membro del team red crea un flusso condiviso denominato flow-1 associato allo spazio red nell'organizzazione acme:

curl "https://apigee.googleapis.com/v1/organizations/acme/sharedflows?name=flow-1&space=red&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@sharedflow-bundle.zip"

L'esempio seguente mostra la risposta al comando:

{
  "name": "organizations/acme/sharedflows/flow-1",
  "revision": 1,
  "sharedFlowId": "flow-1",
  "space": "red",
  "createTime": ...,
  "updateTime": ...
}

Gestire un prodotto API come risorsa Space

I membri assegnati a uno spazio possono creare un prodotto API per raggruppare i proxy API. Quando creano prodotti API, i membri dello spazio possono selezionare tutti i proxy API a loro accessibili, inclusi i proxy creati direttamente nell'organizzazione e i proxy API creati come risorse negli spazi a cui hanno accesso. I membri di altri spazi non potranno accedere o gestire questi prodotti API.

Crea un prodotto API come risorsa Space utilizzando Apigee nella console Cloud o l'API, come descritto nelle sezioni seguenti.

Apigee nella console Cloud

Per creare un prodotto API come risorsa Space utilizzando Apigee in Cloud Console:

  1. Segui i passaggi descritti in Creare un prodotto API.
  2. Nel passaggio 4, nella pagina Dettagli prodotto viene visualizzato un campo aggiuntivo in cui puoi selezionare uno spazio per il prodotto API. Seleziona uno spazio dalla casella di elenco. Se non vuoi assegnare il prodotto API a uno spazio, puoi saltare questo campo.
  3. Completa le restanti informazioni di configurazione e fai clic su Salva.

API Apigee

Per creare un prodotto API come risorsa Space utilizzando l'API, invia una richiesta all'endpoint apiproducts/create e aggiungi la proprietà space.

Ad esempio, il seguente comando crea un prodotto API denominato product-1 nell'organizzazione acme e associato allo spazio red:

curl -X POST "https://apigee.googleapis.com/v1/organizations/acme/apiproducts" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: application/json" -d \
      `{
        "name": "product-1",
        "displayName": "product-1",
        "approvalType": "auto",
        "attributes": [
          {
            "name": "access",
            "value": "internal"
          }
        ],
        "environments": [
          "test"
        ],
        "operationGroup": {
          "operationConfigs": [
            {
              "apiSource": "proxy-1",
              "operations": [
                {
                  "resource": "/",
                  "methods": [
                    "GET"
                  ]
                }
              ]
            }
          ],
          "operationConfigType": "proxy"
        },
        "space": "red"
      }'

L'esempio seguente mostra la risposta al comando:

{
  "name": "product-1",
  "displayName": "product-1",
  "approvalType": "auto",
    "attributes": [
      {
        "name": "access",
        "value": "internal"
      }
    ],
    "environments": [
    "test"
  ],
  "createdAt": "1741977778448",
  "lastModifiedAt": "1741977778448",
  "operationGroup": {
    "operationConfigs": [
      {
        "apiSource": "proxy-1",
        "operations": [
          {
            "resource": "/",
            "methods": [
              "GET"
            ]
          }
        ]
      }
    ],
    "operationConfigType": "proxy"
  },
  "space": "red"
}

Elenca tutte le risorse API associate a uno spazio

Per tutte le operazioni di elenco, tra cui ListApiProxies, ListSharedFlows e ListApiProducts, puoi specificare il nome di uno spazio per elencare tutte le risorse associate a quello spazio. Se non specifichi un nome di spazio, l'operazione di elenco restituirà tutte le risorse dell'organizzazione a cui hai l'autorizzazione di accesso, indipendentemente dal fatto che siano associate o meno a uno spazio.

È importante notare che, quando utilizzi la funzionalità Apigee Spaces, i risultati delle operazioni list per le risorse API assegnate a un spazio saranno limitati ai risultati per gli spazi a cui il principale può accedere. Ad esempio, se a acme-team@acme.com viene assegnato il ruolo apigee.spaceContentEditor per lo spazio rosso, i membri del team acme-team che utilizzano l'operazione list vedranno solo i proxy API associati allo spazio rosso e non tutti i proxy API dell'organizzazione.

Per eseguire questa operazione, devi disporre dell'autorizzazione apigee.apiResources.list. Questa autorizzazione è inclusa nel ruolo Apigee > Apigee Organization Admin.

Elenca le risorse API associate a uno spazio specifico

Elenca tutte le risorse API associate a uno spazio specifico in Apigee in Cloud Console o utilizzando l'API, come descritto nelle sezioni seguenti.

Apigee nella console Cloud

Per elencare tutte le risorse API associate a uno spazio specifico in Apigee in Cloud Console, apri la pagina di panoramica per il tipo di risorsa pertinente (proxy API, flussi condivisi o prodotti API). Nella casella Filtro, seleziona l'opzione Spazio dall'elenco e inserisci il nome dello spazio. Viene visualizzato l'elenco delle risorse assegnate allo spazio. Tieni presente che vengono visualizzate solo le risorse associate a uno spazio di cui l'utente è membro.

API Apigee

Per elencare tutte le risorse API associate a uno spazio specificato, utilizza il seguente comando:

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE?space=SPACE_NAME"

Dove:

  • ORG_NAME è il nome della tua organizzazione Apigee.
  • RESOURCE_TYPE è il tipo di risorsa che stai elencando. I valori validi includono:
    • apis
    • sharedFlows
    • apiProducts
  • SPACE_NAME è il nome dello spazio in cui stai elencando la risorsa.

Ad esempio, con il seguente comando, un membro del team red elenca tutti i proxy API associati allo spazio red nell'organizzazione acme:

curl -H  "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/acme/apis?space=red"

L'esempio seguente mostra la risposta al comando:

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    }
  ]
}

Elenca le risorse API senza specificare uno spazio

Elenca tutte le risorse API senza specificare uno spazio in Apigee nella console Cloud o utilizzando l'API, come descritto nelle sezioni seguenti.

Apigee nella console Cloud

Per visualizzare un elenco di tutte le risorse API di un determinato tipo in Apigee in Cloud Console, indipendentemente dall'associazione dello spazio, apri la pagina Panoramica per il tipo di risorsa pertinente (proxy API, flussi condivisi o prodotti API). Viene visualizzato un elenco di tutte le risorse disponibili. Tieni presente che vengono visualizzate solo le risorse di cui l'utente ha l'autorizzazione di visualizzazione. Sono incluse le risorse associate a uno o più spazi di cui l'utente è membro o le risorse non associate a uno spazio.

API Apigee

Puoi anche elencare le risorse API senza specificare uno spazio utilizzando il seguente comando:

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE"

Dove:

  • ORG_NAME è il nome della tua organizzazione Apigee.
  • RESOURCE_TYPE è il tipo di risorsa che stai elencando. I valori validi includono:
    • apis
    • sharedFlows
    • apiProducts

Ad esempio, un utente con accesso Organization Admin a tutte le risorse dell'organizzazione può utilizzare il seguente comando per elencare tutti i proxy API nell'organizzazione acme:

curl -H  "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/acme/apis"

Se l'organizzazione acme ha tre proxy, il comando restituirà i dettagli di tutti e tre i proxy. Ad esempio:

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    },
    {
      "basepaths": "/proxy-2",
      "revision": "1",
      "apiProxyId": "proxy-2",
      "resourceName": "organizations/acme/apis/proxy-2/revisions/1",
      "space": "blue",
      "createTime": ...,
      ....
    },
    {
      "basepaths": "/proxy-3",
      "revision": "1",
      "apiProxyId": "proxy-3",
      "resourceName": "organizations/acme/apis/proxy-3/revisions/1",
      "space": "green",
      "createTime": ...,
      ....
    }
  ]
}

Se un altro utente con accesso apiAdmin alle risorse nello spazio rosso utilizza lo stesso comando, il comando restituirà solo i dettagli di proxy-1. La risposta sarà simile alla seguente:

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    }
  ]
}

Passaggi successivi