IBM Cloud Docs
Utilizzo degli endpoint del servizio con Code Engine

Utilizzo degli endpoint del servizio con Code Engine

Tutti i progetti IBM Cloud® Code Engine offrono integrazione con gli endpoint del servizio IBM Cloud®. Questo supporto consente di connettersi dall'infrastruttura classica ai carichi di lavoro di Code Engine rimanendo all'interno della rete IBM Cloud.

Puoi controllare la visibilità dei carichi di lavoro Code Engine e specificare se esporre l'applicazione o la funzione a endpoint pubblici o privati. Si accede a un'applicazione o a una funzione configurata per visibility = private tramite gli endpoint del servizio. Le applicazioni o le funzioni a cui si accede tramite un endpoint del servizio non lasciano la rete IBM e rimangono nella rete IBM Cloud.

Endpoint pubblici

Gli endpoint pubblici forniscono una connessione alla tua distribuzione sulla rete pubblica. Al momento del provisioning, un endpoint pubblico è l'opzione predefinita per tutte le distribuzioni. Il tuo ambiente deve disporre di un accesso a Internet per stabilire una connessione a una distribuzione.

Endpoint privati

Una distribuzione con un endpoint del servizio sulla rete privata ottiene un endpoint che non è accessibile da internet pubblico. Tutto il traffico viene instradato verso l'hardware dedicato alle distribuzioni Code Engine e rimane sulla rete privata IBM Cloud. Tutto il traffico da e verso questo endpoint è gratuito e non comporta addebiti a condizione che il traffico rimanga in IBM Cloud. Una volta che l'ambiente ha accesso alla rete privata IBM Cloud, non è necessaria una connessione a Internet per collegarsi all'installazione.

Le distribuzioni dell'applicazione Code Engine con endpoint privati sono raggiungibili da qualsiasi account all'interno della rete privata e l'accesso a ciascuna istanza richiede l'autenticazione. Per limitare l'accesso a indirizzi IP specifici, intervalli di indirizzi IP, servizi IBM Cloud o VPC, configurare regole di restrizione basate sul contesto.

Gestione sicura delle risorse Code Engine utilizzando gli endpoint del servizio

  1. Specifica un progetto Code Engine per utilizzare l'endpoint privato. Puoi configurare un progetto Code Engine per utilizzare l'endpoint privato solo con la CLI. Per creare un progetto, utilizzare il comando ibmcloud ce project create con l'opzione --endpoint=private.

    ibmcloud ce project create --name myproject --endpoint=private
    

    Attendere che il progetto sia nello stato active. Con la CLI, puoi confermare lo stato del progetto utilizzando il comando ibmcloud ce project get.

    Se si desidera che un progetto Code Engine esistente utilizzi l'endpoint privato, utilizzare il comando ibmcloud ce project select con l'opzione --endpoint=private.

    ibmcloud ce project select --name myproject --endpoint=private
    

    Per i comandi project create e project select, se l'opzione --endpoint non viene specificata in modo esplicito, il funzionamento viene determinato dal sistema. Se la CLI IBM Cloud è connessa a private.cloud.ibm.com, il progetto Code Engine si comporta come se --endpoint fosse private. Se la CLI IBM Cloud è connessa a cloud.ibm.com, il progetto Code Engine si comporta come se --endpoint fosse public.

  2. Se non avete creato un nuovo progetto e avete selezionato un progetto esistente e volete che la vostra applicazione sia visibile solo all'endpoint privato, confermate che il progetto esistente supporta applicazioni con visibilità privata. Utilizzare il comando ibmcloud ce project get per verificare che l'output per Application Private Visibility Supported sia impostato su true. Se il valore è false, contattare il supporto IBM per abilitare questa funzionalità all'interno del progetto esistente.

    ibmcloud ce project get -n myproject
    

    Output di esempio

    Getting project 'myproject'...
    OK
    
    Name:                                      myproject
    ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
    Status:                                    active
    Enabled:                                   true
    Application Private Visibility Supported:  false
    Selected:                                  true
    Region:                                    us-south
    Resource Group:             default
    Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
    Age:                        52d
    Created:                                   Tue, 28 Sep 2021 05:12:16 -0500
    Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500
    
    Quotas:
    Category                                  Used  Limit
    App revisions                             1     60
    Apps                                      1     20
    Build runs                                1     100
    Builds                                    2     100
    Configmaps                                2     100
    CPU                                       0     64
    Ephemeral storage                         0     256G
    Instances (active)                        0     250
    Instances (total)                         0     2500
    Job runs                                  0     100
    Jobs                                      0     100
    Memory                                    0     256G
    Secrets                                   6     100
    Subscriptions (cron)                      0     100
    Subscriptions (IBM Cloud Object Storage)  0     100
    Subscriptions (Kafka)                     0     100
    
  3. Creare un'applicazione o una funzione che sia visibile solo all'endpoint privato. Utilizzare il comando ibmcloud ce application create o il ibmcloud ce function create con l'opzione --visibility=private. In alternativa, è possibile utilizzare la console per creare o aggiornare un'applicazione o una funzione e impostare la visibilità dell'applicazione.

    ibmcloud ce application create -n myapp --visibility=private
    

Accesso sicuro all'applicazione con gli endpoint di servizio

  1. Dal tuo progetto Code Engine, conferma che la tua applicazione è configurata con un'impostazione visibility=private. Vedere Distribuzione dell'applicazione con un endpoint privato.

  2. Recupera l' URL dell'applicazione Code Engine esposta alla rete privata. Il sito URL ha il seguente formato: <app>.<uuid>.private.<region>.codeengine.appdomain.cloud.

    • Dalla console Code Engine, accedete alla scheda Domain mappings dell'applicazione per visualizzare la visibilità di un'applicazione e gli URL disponibili.

    • Dalla CLICode Engine, utilizza il comando ibmcloud ce application get con l'opzione --option url. Nell'esempio seguente, poiché la visibilità di myapp è impostata su visibility=private, specificando --option url con questo comando si ottiene l' URL della rete privata.

      ibmcloud ce application get -n myapp -output url
      

      Output di esempio

      http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
      
  3. Chiamare l'applicazione dalla rete privata IBM Cloud (ad esempio, chiamando l'applicazione dalla IBM Cloud Shell ).

    L'applicazione myapp è una semplice applicazione Hello World. Quando si esegue l'applicazione myapp utilizzando cURL, viene restituito Hello World. Ad esempio, dalla shell IBM Cloud, eseguire:

    curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    

Accesso sicuro alla tua funzione con gli endpoint del servizio

  1. Dal tuo progetto Code Engine, conferma che la tua funzione è configurata con un'impostazione visibility=private. Vedi Distribuzione della tua funzione con un endpoint privato.

  2. Recupera l' URL della funzione Code Engine esposta alla rete privata. Il sito URL ha il seguente formato: <function>.<uuid>.private.<region>.codeengine.appdomain.cloud.

    • Dalla console Code Engine, vai alla scheda Mappature dominio per la tua funzione per visualizzare la visibilità della funzione e i suoi URL disponibili.

    • Dalla CLICode Engine, utilizzare il comando ibmcloud ce function get. Nell'esempio seguente, poiché la visibilità di myfunction è impostata su visibility=private, questo comando invia l' URL alla rete privata.

      ibmcloud ce function get -n myfunction
      

      Output di esempio

      http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud