Configurazioni delle risorse di rete di esempio

Scopri alcuni esempi di come configurare le risorse di rete per lo sviluppo del gateway API.

Prima di poter utilizzare il servizio Gateway API per creare gateway API e distribuire le API su di essi come distribuzioni API:

  • Devi avere accesso a una tenancy di Oracle Cloud Infrastructure. La tenancy deve essere sottoscritta a una o più aree in cui è disponibile API Gateway (vedere Disponibilità per area).
  • La tenancy deve disporre di una quota sufficiente nelle risorse correlate a API Gateway (vedere Limiti del servizio).

  • All'interno della tenancy deve essere già presente un compartimento in cui possedere le risorse di rete necessarie. Se un compartimento di questo tipo non esiste già, sarà necessario crearlo. Vedere Crea compartimenti per la proprietà delle risorse di rete e del gateway API nella tenancy, se non esistono già.
  • Il compartimento proprietario delle risorse di rete deve contenere una VCN, una subnet regionale pubblica o privata e altre risorse (ad esempio un gateway Internet, una tabella di instradamento, liste di sicurezza e/o gruppi di sicurezza di rete). Per garantire l'alta disponibilità, i gateway API possono essere creati solo nelle subnet regionali (non nelle subnet specifiche di AD). Tenere presente che un gateway API deve essere in grado di raggiungere i backend definiti nella specifica di distribuzione API. Ad esempio, se il backend si trova nella rete Internet pubblica, la VCN deve disporre di un gateway Internet per consentire al gateway API di instradare le richieste al backend.
  • La VCN deve disporre di un set di opzioni DHCP che include un resolver DNS appropriato per mappare i nomi host definiti in una specifica di distribuzione API agli indirizzi IP. Se un set di opzioni DHCP di questo tipo non esiste già nella VCN, sarà necessario crearlo. Selezionare le opzioni DHCP impostate per la subnet del gateway API come indicato di seguito.

    • Se il nome host viene pubblicato pubblicamente su Internet o se appartiene a un'istanza nella stessa VCN, selezionare un set di opzioni DHCP con Internet e resolver VCN forniti da Oracle come tipo di DNS. Questa è l'impostazione predefinita se non si seleziona esplicitamente un set di opzioni DHCP.
    • Se il nome host si trova nella propria rete privata o interna (ad esempio, connessa alla VCN mediante FastConnect), selezionare un set di opzioni DHCP con resolver personalizzato come tipo di DNS e l'URL di un server DNS appropriato in grado di risolvere il nome host in un indirizzo IP.

    Si noti che è possibile modificare i dettagli del server DNS nel set di opzioni DHCP specificato per la subnet di un gateway API. Il gateway API verrà riconfigurato per utilizzare i dettagli aggiornati del server DNS entro due ore. Per ulteriori informazioni sulla risoluzione dei nomi host negli indirizzi IP, vedere DNS in Your Virtual Cloud Network e Opzioni DHCP.

  • All'interno della tenancy deve essere già presente un compartimento in cui possedere risorse correlate al gateway API (gateway API, distribuzioni API). Questo compartimento può essere, ma non deve necessariamente essere, lo stesso compartimento che contiene le risorse di rete. Vedere Crea compartimenti per la proprietà delle risorse di rete e del gateway API nella tenancy, se non esistono già. Tenere presente che le risorse correlate a API Gateway possono risiedere nel compartimento radice. Tuttavia, se prevedi che più team creino gateway API, la best practice consiste nel creare un compartimento separato per ogni team.
  • Per creare gateway API e distribuire API su di essi, è necessario appartenere a uno degli elementi riportati di seguito.

  • È necessario definire i criteri per concedere ai gateway API creati l'accesso a risorse aggiuntive, se necessario. Vedere Creare un criterio per concedere agli utenti del gateway API l'accesso alle funzioni.

In questo argomento vengono forniti esempi di come configurare le risorse di rete per i gateway API con una funzione serverless come backend:

Questi esempi presuppongono che la funzione helloworld predefinita sia stata creata e distribuita in Funzioni OCI con il nome helloworld-func e appartenente all'applicazione helloworld-app (vedere Creazione, distribuzione e richiamo di una funzione Helloworld).

Nota

Gli esempi riportati in questa sezione mostrano l'uso delle regole di sicurezza negli elenchi di sicurezza per controllare l'accesso. Se si preferisce i gruppi di sicurezza di rete piuttosto che le liste di sicurezza, è possibile specificare regole di sicurezza identiche per i gruppi di sicurezza di rete.

Esempio 1: configurazione di risorse di rete di esempio per un gateway API pubblico in una subnet pubblica con una funzione serverless come backend HTTP

In questo esempio si presume che si desideri un gateway API pubblico a cui sia possibile accedere direttamente da Internet, con una funzione serverless come backend HTTP.

Mostra un gateway API pubblico in una subnet pubblica in una VCN. Il gateway API è connesso a Internet (tramite un gateway Internet) e a una funzione serverless backend in OCI Functions.

Per ottenere questa configurazione di esempio, si creano le seguenti risorse nella sequenza mostrata, con le proprietà mostrate nella tabella Configurazione risorse di esempio riportata di seguito:

  1. Una VCN denominata 'acme-vcn1'.
  2. Un gateway Internet denominato 'acme-internet-gateway'.
  3. Tabella di instradamento denominata 'acme-routetable-public'.
  4. Lista di sicurezza denominata 'acme-security-list-public', con una regola di entrata che consente l'accesso pubblico al gateway API e una regola di uscita che consente l'accesso alle funzioni OCI.
  5. Una subnet pubblica denominata 'acme-public-subnet'.
  6. Un gateway API denominato 'acme-public-gateway', con una distribuzione API denominata 'acme-public-deployment'.

L'emissione di un comando curl dalla rete Internet pubblica rispetto alla distribuzione API restituisce la risposta mostrata:


[user@machinename ~]$ curl -X GET https://lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com/marketing/hello

Hello, world!

Configurazione delle risorse di rete di esempio

Risorse Esempio
VCN

Creato manualmente e definito come indicato di seguito.

  • Nome: acme-vcn1
  • Blocco CIDR: 10.0.0.0/16
  • Risoluzione DNS: selezionata
Gateway Internet

Creato manualmente e definito come indicato di seguito.

  • Nome: acme-internet-gateway
Tabella di instradamento

Una tabella di instradamento creata manualmente, denominata e definita come segue:

  • Nome:acme-routetable-public, con una regola di instradamento definita come segue:

    • Blocco CIDR di destinazione: 0.0.0.0/0
    • Tipo di destinazione: gateway Internet
    • Gateway Internet di destinazione: acme-internet-gateway
Opzioni DHCP

Creato automaticamente e definito come segue:

  • Tipo DNS impostato su Internet e sul resolver VCN
Lista di sicurezza

Una lista di sicurezza creata manualmente (oltre alla lista di sicurezza predefinita), denominata e definita come segue:

  • Nome lista di sicurezza: acme-security-list-public, con una regola di entrata che consente l'accesso pubblico al gateway API e una regola di uscita che consente l'accesso alle funzioni OCI.
  • Regola di entrata 1:
    • Stato: con conservazione dello stato
    • Tipo di origine: CIDR
    • CIDR di origine: 0.0.0.0/0
    • Protocollo IP: TCP
    • Intervallo porte di origine: tutte
    • Intervallo di porte di destinazione: 443
  • Regola di uscita 1:
    • Stato: con conservazione dello stato
    • Tipo di destinazione: CIDR
    • CIDR di destinazione: 0.0.0.0/0
    • Protocollo IP: tutti i protocolli
subnet

Una subnet pubblica regionale creata manualmente, denominata e definita come segue:

  • Nome: acme-public-subnet con le seguenti proprietà:

    • Blocco CIDR: 10.0.0.0/24
    • Tabella di instradamento: acme-routetable-public
    • Accesso alla subnet: pubblico
    • Risoluzione DNS: selezionata
    • Opzioni DHCP: impostazione predefinita
    • Elenco di sicurezza: acme-security-list-public
API Gateway

Un gateway API pubblico creato e definito come riportato di seguito.

  • Nome: acme-public-gateway
  • Tipo: pubblico
  • VCN: acme-vcn1
  • Subnet: acme-public-subnet
  • Nome host: (ai fini di questo esempio, il nome host è lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com)
Distribuzione API

Una distribuzione API creata e definita come riportato di seguito.

  • Nome: acme-public-deployment
  • Prefisso percorso:/marketing
  • Criteri di richiesta API: nessuno specificato
  • Log API: nessuna impostazione specificata
  • Percorso:
    • Percorso: /hello
    • Metodi: GET
    • Tipo: Funzioni OCI
    • Applicazione: helloworld-app
    • Nome funzione: helloworld-func

Esempio 2: configurazione delle risorse di rete per un gateway API privato in una subnet privata con una funzione serverless come backend HTTP

In questo esempio si presume che si desideri un gateway API privato a cui sia possibile accedere solo tramite un bastion host (anziché accedere direttamente da Internet), con una funzione serverless come backend HTTP.

Mostra un gateway API privato in una subnet privata in una VCN. Il gateway API è connesso a Internet (tramite un gateway NAT, un host bastion in una subnet pubblica e un gateway Internet) e a un backend di funzioni serverless in OCI Functions.

Per ottenere questa configurazione di esempio, si creano le seguenti risorse nella sequenza mostrata, con le proprietà mostrate nella tabella Configurazione risorse di esempio riportata di seguito:

  1. Una VCN denominata acme-vcn2
  2. Un gateway Internet denominato acme-internet-gateway
  3. Un gateway di servizi denominato acme-service-gateway. In questo esempio è sufficiente creare un gateway di servizi, poiché il gateway API dispone solo di un backend Funzioni OCI. Tuttavia, se il gateway API dispone sia di un backend OCI Functions che di un backend HTTP nella rete Internet pubblica, è possibile creare un gateway NAT per accedere a entrambi i backend.
  4. Una tabella di instradamento denominata acme-routetable-private
  5. Lista di sicurezza denominata acme-security-list-private, con una regola di entrata che consente all'host bastion di accedere al gateway API e una regola di uscita che consente l'accesso alle funzioni OCI.
  6. Una subnet privata denominata acme-private-subnet
  7. Un gateway API denominato acme-private-gateway, con una distribuzione API denominata acme-private-deployment
  8. Una tabella di instradamento denominata acme-routetable-bastion
  9. Lista di sicurezza denominata acme-security-list-bastion, con una regola di entrata che consente l'accesso SSH pubblico all'host bastion e una regola di uscita che consente all'host bastion di accedere al gateway API.
  10. Subnet pubblica denominata acme-bastion-public-subnet
  11. Un'istanza di computazione con un indirizzo IP pubblico da utilizzare come host bastion, denominato acme-bastion-instance

Avendo la shell SSH nell'host bastion, l'esecuzione di un comando curl sulla distribuzione API restituisce la risposta mostrata:


[user@machinename ~]$ ssh opc@198.51.100.254

[opc@acme-bastion-instance ~]$ curl -X GET https://pwa...djt.apigateway.us-phoenix-1.oci.customer-oci.com/marketing-private/hello

Hello, world!

Esempio di configurazione delle risorse

Risorse Esempio
VCN

Creato manualmente e definito come indicato di seguito.

  • Nome: acme-vcn2
  • Blocco CIDR: 10.0.0.0/16
  • Risoluzione DNS: selezionata
Gateway Internet

Creato manualmente e definito come indicato di seguito.

  • Nome: acme-internet-gateway
Gateway del servizio

Creato manualmente e definito come indicato di seguito.

  • Nome: acme-service-gateway
  • Servizi: tutti i servizi <region> in Oracle Services Network
Tabelle di instradamento

Due tabelle di instradamento create manualmente, denominate e definite come segue:

  • Nome:acme-routetable-bastion, con una regola di instradamento definita come segue:

    • Blocco CIDR di destinazione: 0.0.0.0/0
    • Tipo di destinazione: gateway Internet
    • Gateway Internet di destinazione: acme-internet-gateway
  • Nome:acme-routetable-private, con una regola di instradamento definita come segue:

    • Blocco CIDR di destinazione: 0.0.0.0/0
    • Tipo di destinazione: gateway del servizio
    • Servizio di destinazione: tutti i servizi <region> in Oracle Services Network
    • Gateway del servizio di destinazione: acme-service-gateway
Opzioni DHCP

Creato automaticamente e definito come segue:

  • Tipo DNS impostato su Internet e sul resolver VCN
Lista di sicurezza

Due liste di sicurezza create manualmente (oltre alla lista di sicurezza predefinita), denominate e definite come segue:

  • Nome lista di sicurezza: acme-security-list-bastion, con una regola di entrata che consente l'accesso SSH pubblico all'host bastion e una regola di uscita che consente all'host bastion di accedere al gateway API:

    • Regola di entrata 1:
      • Stato: con conservazione dello stato
      • Tipo di origine: CIDR
      • CIDR di origine: 0.0.0.0/0
      • Protocollo IP: TCP
      • Intervallo porte di origine: tutte
      • Intervallo di porte di destinazione: 22
    • Regola di uscita 1:
      • Stato: con conservazione dello stato
      • Tipo di destinazione: CIDR
      • CIDR di destinazione: 0.0.0.0/0
      • Protocollo IP: tutti i protocolli
  • Nome lista di sicurezza: acme-security-list-private, con una regola di entrata che consente all'host bastion di accedere al gateway API e una regola di uscita che consente l'accesso alle funzioni OCI:

    • Regola di entrata 1:
      • Stato: con conservazione dello stato
      • Tipo di origine: CIDR
      • CIDR di origine: 10.0.0.0/16
      • Protocollo IP: TCP
      • Intervallo porte di origine: tutte
      • Intervallo di porte di destinazione: 443
    • Regola di uscita 1:
      • Stato: con conservazione dello stato
      • Tipo di destinazione: CIDR
      • CIDR di destinazione: 0.0.0.0/0
      • Protocollo IP: tutti i protocolli
subnet

Due subnet regionali create manualmente, denominate e definite come segue:

  • Nome: acme-bastion-public-subnet, con le seguenti proprietà:

    • Blocco CIDR: 10.0.1.0/24
    • Tabella di instradamento: acme-routetable-bastion
    • Accesso alla subnet: pubblico
    • Risoluzione DNS: selezionata
    • Opzioni DHCP: impostazione predefinita
    • Elenco di sicurezza: acme-security-list-bastion
  • Nome: acme-private-subnet con le seguenti proprietà:

    • Blocco CIDR: 10.0.2.0/24
    • Tabella di instradamento: acme-routetable-private
    • Accesso a subnet: privato
    • Risoluzione DNS: selezionata
    • Opzioni DHCP: impostazione predefinita
    • Elenco di sicurezza: acme-security-list-private
API Gateway

Un gateway API privato creato e definito come riportato di seguito.

  • Nome: acme-private-gateway
  • Tipo: privato
  • VCN: acme-vcn2
  • Subnet: acme-private-subnet
  • Nome host: (ai fini di questo esempio, il nome host è pwa...djt.apigateway.us-phoenix-1.oci.customer-oci.com)
Distribuzione API

Una distribuzione API creata e definita come riportato di seguito.

  • Nome: acme-private-deployment
  • Prefisso percorso: /marketing-privato
  • Criteri di richiesta API: nessuno specificato
  • Log API: nessuna impostazione specificata
  • Percorso:
    • Percorso: /hello
    • Metodi: GET
    • Tipo: Funzioni OCI
    • Applicazione: helloworld-app
    • Nome funzione: helloworld-func
Istanze

Una istanza di computazione creata e definita come segue:

  • Nome: acme-bastion-instance
  • Dominio di disponibilità: AD1
  • Tipo di istanza: virtual machine
  • VCN: acme-vcn2
  • Subnet:acme-bastion-public-subnet
  • Assegna un indirizzo IP pubblico: selezionato (ai fini di questo esempio, all'istanza viene assegnato l'indirizzo IP 198.51.100.254)