Chiamata a un proxy API con accesso solo interno

Questa pagina si applica ad Apigee, ma non ad Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Questo documento spiega come chiamare i proxy API dai client in esecuzione sulla tua rete interna. Questi passaggi sono utili per testare la configurazione se per Apigee è stato eseguito il provisioning per utilizzare il routing di rete interna. Puoi seguire i passaggi descritti in questo documento se Apigee è stato eseguito il provisioning con una di queste configurazioni di routing di rete:

Opzione di provisioning Opzione di networking Passaggi di provisioning
Abbonamento a pagamento Con il peering VPC Routing interno (VPC)
Routing interno (PSC)
Pagamento a consumo Con il peering VPC Routing interno (VPC)
Routing interno (PSC)
Valutazione Con il peering VPC Configurare il routing (interno)
Valutazione Senza peering VPC Routing interno (PSC)

Consulta anche le opzioni di networking.

Prima di iniziare

Esegui i seguenti passaggi preliminari di configurazione:

  1. Se non l'hai ancora fatto, inizializza Cloud SDK come descritto in Inizializza gcloud CLI oppure assicurati che il progetto Google Cloud che hai creato in Prerequisiti sia il progetto predefinito per gcloud.
  2. Definisci le seguenti variabili di ambiente locali:

    export PROJECT_ID=YOUR_PROJECT_ID
    export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    export SUBNET=NETWORK_NAME
    export INSTANCE_NAME=INSTANCE_NAME
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")

    Dove:

    • PROJECT_ID è l'ID progetto Cloud che hai creato nell'ambito dei prerequisiti.
    • AUTH definisce l'intestazione Authentication con un token di accesso. Lo userai quando chiamerai le API Apigee. Tieni presente che il token scade dopo un determinato periodo di tempo e, a quel punto, puoi semplicemente rigenerarlo utilizzando lo stesso comando. Per maggiori informazioni, consulta la pagina di riferimento del comando print-access-token.
    • SUBNET è la subnet specificata durante il provisioning. Ad esempio: default.
    • INSTANCE_NAME: il nome della nuova istanza. Ad esempio, my-runtime-instance. Il nome deve iniziare con una lettera minuscola, può avere una lunghezza massima di 32 caratteri ed essere composto solo da lettere minuscole, numeri e trattini. Non può iniziare o terminare con un trattino e deve essere costituito da almeno due caratteri.
    • PROJECT_NUMBER è il numero del progetto Cloud che hai creato nell'ambito dei prerequisiti. Questo esempio emette un comando gcloud per recuperare il numero di progetto.
  3. Ottieni il valore della proprietà location dall'istanza Apigee. Questo valore è la regione in cui si trova l'istanza, ad esempio us-west1:
    curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances
  4. Scegli una zona all'interno della regione dell'istanza e inserisci il nome della zona in una variabile. La zona deve trovarsi all'interno dell'istanza. Ad esempio:
    export VM_ZONE="us-west1-b"

    Se hai bisogno di aiuto per identificare una zona all'interno della regione dell'istanza, puoi utilizzare questo comando gcloud per restituire un nome di zona per la regione di runtime configurata. Ad esempio:

    VM_ZONE=$(gcloud compute zones list | grep "us-west1" | head -n 1 | awk '{print $1}')

Crea una VM e chiama il proxy API

Successivamente, crea una nuova VM all'interno della tua rete VPC utilizzando il comando gcloud beta compute. La VM funge da ponte che ti consente di inviare richieste all'IP del bilanciatore del carico interno. Dopo aver configurato la VM, puoi chiamare un proxy API di cui è stato eseguito il deployment:

  1. L'esempio seguente crea una nuova VM con alcune opzioni comuni e utilizza le variabili di ambiente che hai definito in precedenza come input.
    gcloud beta compute --project=$PROJECT_ID \
      instances create $INSTANCE_NAME \
      --zone=$VM_ZONE \
      --machine-type=e2-micro \
      --subnet=$SUBNET \
      --network-tier=PREMIUM \
      --no-restart-on-failure \
      --maintenance-policy=TERMINATE \
      --preemptible \
      --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --scopes=https://www.googleapis.com/auth/cloud-platform \
      --tags=http-server,https-server \
      --image=debian-12-bookworm-v20240701 \
      --image-project=debian-cloud \
      --boot-disk-size=10GB \
      --boot-disk-type=pd-standard \
      --boot-disk-device-name=$INSTANCE_NAME \
      --no-shielded-secure-boot \
      --shielded-vtpm \
      --shielded-integrity-monitoring \
      --reservation-affinity=any
  2. Apri una connessione sicura alla nuova VM appena creata.

    gcloud compute ssh $INSTANCE_NAME --zone=$VM_ZONE --project=$PROJECT_ID
  3. Nella shell della VM, installa l'utilità jq. Viene utilizzato nei passaggi successivi:
    sudo apt-get update -y
    sudo apt-get install -y jq
    
  4. Nella shell della VM, crea le seguenti variabili di ambiente per semplificare la copia/l'incollamento della richiesta del proxy API:
    export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    export PROJECT_ID=YOUR_PROJECT_ID
    export ENV_GROUP_HOSTNAME=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups -s | jq -r '.environmentGroups[0].hostnames[0]')
    
  5. Assicurati che le variabili siano impostate correttamente:
    echo $AUTH
    echo $PROJECT_ID
    echo $ENV_GROUP_HOSTNAME
  6. Chiama un proxy API. Seleziona un'opzione di seguito che corrisponda al modo in cui hai configurato il routing durante il provisioning di Apigee.

    Opzioni per le installazioni che utilizzano il peering VPC

    • (Opzione TLS 1) Se hai configurato un bilanciatore del carico interno (ILB) nel tuo progetto, come spiegato in Routing interno (VPC), chiama il proxy utilizzando l'IP dell'ILB. Questa opzione utilizza i certificati CA sotto il tuo controllo e creati al momento della creazione del bilanciatore del carico interno:
      1. Ottieni l'IP dell'ILB nel tuo progetto, come spiegato in Configura il bilanciamento del carico HTTP(S) interno con i backend dei gruppi di istanze VM.
      2. Chiama un proxy API:
        curl -H "Host: $ENV_GROUP_HOSTNAME" \
          https://INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
    • (Opzione TLS 2) Utilizza il nome di dominio completo predefinito che si risolve nel bilanciatore del carico interno nel progetto Apigee. Con questa opzione, TLS viene utilizzato utilizzando i certificati autofirmati Apigee creati internamente. Non hai il controllo su questi certificati.
      1. Ottieni l'IP del bilanciatore del carico interno nel progetto Apigee:
        export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
      2. Estrai il certificato CA creato durante la creazione dell'organizzazione con il seguente comando:
        curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID | jq -r .caCertificate | base64 -d > cacert.crt
      3. Invia la richiesta a un proxy API di cui è stato eseguito il deployment, dove example.$PROJECT_ID.apigee.internal è il nome di dominio completo interno predefinito che si risolve nel bilanciatore del carico interno.
        curl -is -H "Host: $ENV_GROUP_HOSTNAME" \
          https://example.$PROJECT_ID.apigee.internal/PROXY_BASEPATH \
          --cacert cacert.crt \
          --resolve example.$PROJECT_ID.apigee.internal:443:$INTERNAL_LOAD_BALANCER_IP
    • (Opzione non TLS) Se non hai bisogno di TLS, puoi utilizzare il flag -k sul comando curl per disattivare TLS ed eventualmente evitare problemi di SSL:
      1. Ottieni l'IP del bilanciatore del carico interno nel progetto Apigee:
        export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
      2. Chiama un proxy API:
        curl -i -k \
          -H "Host: $ENV_GROUP_HOSTNAME" \
          https://$INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
    • (Opzione endpoint del servizio) Se hai eseguito il provisioning di un'organizzazione a pagamento o di valutazione con PSC e hai scelto l'opzione di routing dell'endpoint del servizio:
      1. Ottieni l'IP dell'endpoint di servizio. Se devi cercare l'indirizzo IP dell'endpoint, consulta Elenco endpoint.
      2. Chiama un proxy API:
        curl -i -k \
           -H "Host: $ENV_GROUP_HOSTNAME" \
           https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH

        Ad esempio:

        curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k

    Opzioni per le installazioni che non utilizzano il peering non VPC

    • (Opzione endpoint del servizio) Se hai eseguito il provisioning di un'organizzazione a pagamento o di valutazione con PSC e hai scelto l'opzione di routing dell'endpoint del servizio:
      1. Ottieni l'IP dell'endpoint di servizio. Se devi cercare l'indirizzo IP dell'endpoint, consulta Elenco endpoint.
      2. Chiama un proxy API:
        curl -i -k \
            -H "Host: $ENV_GROUP_HOSTNAME" \
            https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH

        Ad esempio:

        curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k

    Se riscontri errori durante questa parte della procedura, assicurati che tutte le variabili di ambiente che hai creato e utilizzato nei comandi abbiano valori validi. Consulta anche la sezione Risoluzione dei problemi.

    Passaggio successivo

    Prova a creare un proxy che potrai poi implementare o visita i tutorial di Apigee che ti presenteranno le funzionalità di Apigee, come la protezione contro i picchi di traffico improvvisi o l'ottenimento di una visualizzazione dettagliata del flusso di richiesta/risposta.

    (Avanzato) Se prevedi di trasformare questa configurazione in una produzione, puoi configurare un perimetro di sicurezza attorno al nuovo cluster e ai servizi cloud correlati. Questo è possibile con Controlli di servizio VPC.