Configurazione delle associazioni di dominio personalizzate per la funzione
Le associazioni di dominio forniscono la rotta URL alla funzione Code Engine all'interno di un progetto. Con Code Engine, queste associazioni vengono create automaticamente, per impostazione predefinita, ogni volta che distribuisci la tua funzione. Tuttavia, puoi associare il tuo dominio personalizzato a una funzione Code Engine per instradare le richieste dal tuo URL personalizzato alla tua funzione dalla console o dalla CLI Code Engine.
Se si desidera indirizzare la funzione con un dominio di cui si è proprietari, è possibile utilizzare un'associazione di dominio personalizzata. Quando imposti un'associazione di dominio personalizzata in Code Engine, definisci un'associazione 1-to-1 tra il nome dominio completo (FQDN) e una funzione Code Engine nel tuo progetto.
Un'associazione dominio personalizzata deve puntare a una sola associazione. Tuttavia, è possibile configurare più associazioni dominio a una singola funzione.
È possibile creare al massimo 80 associazioni di dominio personalizzate per progetto. Vedere Quote progetto.
Quando crei un'associazione dominio personalizzata in Code Engine, il nome dominio che utilizzi nell'associazione deve essere univoco nella regione.
Per creare e configurare associazioni di dominio personalizzate, completare la seguente procedura:
- Esamina le Considerazioni prima di utilizzare le associazioni di dominio personalizzate in Code Engine.
- Ottieni il dominio personalizzato da un registrar di dominio (esterno a Code Engine).
- Configura un'associazione dominio personalizzata in Code Engine per la tua funzione (dalla console o dalla CLI Code Engine).
- Completa la configurazione del dominio personalizzato con il tuo registrar del dominio. (esterno a Code Engine).
Si supponga di voler creare un'associazione dominio personalizzata per www.example.com e shop.example.com. In questo caso, è necessario creare un'associazione dominio personalizzata per ciascun dominio o sottodominio
univoco. Tuttavia, è possibile riutilizzare lo stesso segreto TLS per più associazioni di dominio personalizzate se i certificati del segreto TLS includono il dominio specificato nell'associazione di dominio personalizzato. Ciò significa che
puoi associare un segreto TLS a più domini, come www.example.com e shop.example.com, o a un dominio jolly come *.example.com.
Configurazione delle associazioni di dominio personalizzate dalla console
Puoi creare un'associazione dominio personalizzata con la tua funzione Code Engine al tuo nome dominio registrato con la console Code Engine.
Prima di iniziare
- Ottieni un dominio personalizzato da un registrar di dominio e il suo certificato TLS firmato e la chiave privata.
- Creare un progetto.
- Creare una funzionalità.
In questo scenario, creare un'associazione di dominio personalizzato ad una funzione con un segreto TLS. Ad esempio, creare un'associazione di dominio personalizzata per associare il dominio www.example.com alla funzione myfunction.
-
Dalla pagina ProgettiCode Engine, vai al tuo progetto.
-
Dalla pagina Panoramica, fare clic su Associazioni dominio.
-
Dalla pagina Associazioni dominio, fare clic su Crea per creare la propria associazione.
-
Dalla pagina Crea un'associazione dominio, specificare il segreto TLS da utilizzare con questa associazione dominio. Code Engine convalida se il certificato è firmato da una CA attendibile e se il certificato corrisponde al nome del dominio personalizzato e alla chiave privata forniti.
Per creare un nuovo segreto TLS,
- Fai clic su Crea.
- Aggiungere il certificato TLS, inclusi tutti i certificati intermedi, associati al dominio. Se il certificato viene fornito come file separati, concatenare il contenuto dei file. È possibile fornire queste informazioni in un file.
- Aggiungere la chiave privata corrispondente al certificato. È possibile fornire queste informazioni in un file.
Formato di esempio per una catena di certificati
-----BEGIN CERTIFICATE----- ...certificate... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ...intermediate-certificate... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ...intermediate-certificate... -----END CERTIFICATE-----Oppure, per utilizzare un segreto TLS esistente,
- Fai clic su Select.
- Selezionare il segreto esistente dall'elenco che si desidera utilizzare.
-
Specificare il nome dominio e il componente di destinazione.
- Specificare il nome dominio completo per il nome dominio personalizzato; ad esempio,
www.example.com. - Selezionare una funzione di destinazione esistente, ad esempio
myfunction. Per questo esempio, la funzionemyfunctionutilizza l'immagine di esempioicr.io/codeengine/helloworld. Per ulteriori informazioni sul codice utilizzato per questo esempio, consultarehelloworld. - Nota il campo CNAME target. Questo valore è la voce CNAME richiesta quando completi la configurazione del dominio personalizzato con il tuo registrar del dominio in modo che il traffico che punta al tuo dominio personalizzato venga instradato alla funzione specificata.
- Specificare il nome dominio completo per il nome dominio personalizzato; ad esempio,
-
Fare clic su Crea per creare l'associazione dominio personalizzata.
Ora hai un'associazione di dominio creata in Code Engine. Tuttavia, le richieste inviate alla funzione non vengono (ancora) instradate al dominio personalizzato. Successivamente, completa la configurazione del dominio personalizzato con il tuo registrar del dominio.
Si supponga di voler creare un'associazione dominio personalizzata per www.example.com e shop.example.com. In questo caso, è necessario creare un'associazione dominio personalizzata per ciascun dominio o sottodominio
univoco. Tuttavia, è possibile riutilizzare lo stesso segreto TLS per più associazioni di dominio personalizzate se il segreto TLS include la certificazione per il dominio specificato nell'associazione di dominio personalizzata. Il segreto
TLS può contenere certificati che si associano a più domini specifici, come www.example.com e shop.example.com, o un dominio jolly come *.example.com. Notare che non è possibile utilizzare il dominio
jolly più di una volta all'interno di una regione.
Configurazione delle associazioni di domini personalizzati con CLI
Per creare un'associazione dominio personalizzata con CLI, utilizzare il comando domainmapping create. Questo comando richiede un nome dominio completo (FQDN), ad esempio www.example.com, una funzione
di destinazione e un segreto TLS. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce domainmapping create.
Prima di iniziare
- Ottenere il nome dominio registrato.
- Ottenere il certificato TLS firmato e la chiave privata per il dominio personalizzato.
- Imposta il tuo ambiente CLICode Engine.
- Creare un progetto.
- Creare una funzionalità.
Quando il tuo nome dominio è registrato, hai un certificato TLS firmato e la relativa chiave privata corrispondente per questo dominio e hai una funzione Code Engine esistente, sei pronto per aggiungere un'associazione di dominio personalizzata.
Puoi utilizzare il comando domainmapping create nella CLI per creare un'associazione di dominio personalizzata con la tua funzione Code Engine.
-
Crea un segreto TLS con il certificato TLS firmato e la chiave privata. In questo esempio, il file
mycert.txtcontiene il certificato TLS, inclusi tutti i certificati intermedi, associati con il tuo dominio. Se il certificato viene fornito come file separati, concatenare il contenuto dei file. Il filemyprivatekey.txtcontiene la chiave privata corrispondente che corrisponde alla catena di certificati.ibmcloud ce secret create --name mytlssecret --format tls --cert-chain-file mycertchain.txt --private-key-file myprivatekey.txtOutput di esempio
Creating tls secret 'mytlssecret'... OK -
Crea l'associazione del dominio personalizzato tra la funzione Code Engine
myfunctione il dominio personalizzatowww.example.com. Utilizza il segreto TLS che hai creato nel passo precedente.ibmcloud ce domainmapping create --domain-name www.example.com --target myhellofun --tls-secret mytlssecretOutput di esempio
OK Domain mapping successfully created.
La seguente tabella riepiloga le opzioni utilizzate con il comando domainmapping create in questo esempio. Per ulteriori informazioni sul comando e sulle sue opzioni, consultare il comando ibmcloud ce domainmapping create.
| Opzione | Descrizione |
|---|---|
--domain-name |
Il nome della mappatura del dominio personalizzato. Specificare il nome del dominio personalizzato, ad esempio www.example.com. Questo valore è obbligatorio. |
--target |
Il nome della funzione Code Engine di destinazione. Questo valore è obbligatorio. |
--tls-secret |
Il segreto TLS per l'associazione dominio. Questo valore è obbligatorio. |
Ora la tua associazione dominio personalizzata viene creata in Code Engine. Tuttavia, le richieste inviate alla funzione non vengono (ancora) instradate al dominio personalizzato. Successivamente, devi completare la configurazione del dominio personalizzato con il tuo registrar di dominio.
Completamento della configurazione del dominio personalizzato con il registrar del dominio
Una volta creata l'associazione del dominio personalizzato Code Engine, un record CNAME corrispondente al nome dominio completo deve essere aggiunto alle impostazioni DNS del dominio personalizzato. Puoi trovare le impostazioni DNS nelle impostazioni di configurazione del registrar del dominio corrispondente. Completa questo passo in modo che il traffico che punta al tuo dominio personalizzato venga instradato verso la funzione Code Engine come definito nell'associazione del dominio personalizzato Code Engine.
Verifica del tuo dominio personalizzato
Dopo aver completato la configurazione del dominio personalizzato con il tuo registrar del dominio e gli aggiornamenti del record CNAME sono pubblicati, puoi testare la funzione con l'associazione del dominio personalizzato.
Con un browser, richiamare la funzione selezionando il dominio personalizzato con il comando curl.
curl -v -X GET https://www.example.com
L'output della chiamata al dominio personalizzato viene associato alla funzione myhellofun, che utilizza l'immagine di esempio icr.io/codeengine/helloworld.