Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Intégrez le service de transmission de messages OCI au service des fonctions pour OCI, au service de stockage d'objets pour OCI, au service de chambre forte pour OCI et à la base de données OCI avec PostgreSQL
Présentation
Les entreprises s'appuient sur une communication par courriel efficace à diverses fins, y compris les notifications automatiques, les mises à jour d'application et les campagnes de marketing. Pour répondre à ces besoins, Oracle Cloud Infrastructure (OCI) offre un service de transmission de messages robuste conçu pour fournir une solution gérée rapide et fiable pour l'envoi de courriels de marketing et transactionnels sécurisés à volume élevé.
Ce tutoriel explique comment le service de transmission de messages OCI est utilisé pour l'envoi simplifié de courriels, intégré de façon transparente au service des fonctions pour OCI, au service de chambre forte pour OCI, au service de stockage d'objets pour OCI et au service de base de données pour OCI avec PostgreSQL afin d'améliorer l'automatisation et la fiabilité des processus d'envoi de courriels. Il offre également une plate-forme flexible pour créer des solutions de transmission de messages fiables. Le code fourni sert de point de départ aux développeurs pour créer des pipelines de transmission de messages personnalisés en fonction de leurs besoins particuliers.
Lorsqu'elle est appelée, la fonction créée à l'aide du service des fonctions pour OCI extrait un modèle de courriel du service de stockage d'objets pour OCI, se connecte à la base de données OCI avec la base de données PostgreSQL pour extraire les adresses de courriel des destinataires et envoie le courriel à tous ces destinataires.
Objectifs
-
Intégrez le service de transmission de messages OCI au service des fonctions pour OCI.
-
Utilisez le service de chambre forte OCI pour la gestion sécurisée des données d'identification et des informations sensibles.
-
Extraire les adresses de destinataire d'une base de données OCI avec la base de données PostgreSQL pour une répartition personnalisée des courriels.
-
Extraire des modèles de courriel dynamiquement à partir du stockage d'objets OCI pour obtenir du contenu personnalisable.
Préalables
-
Accès à une location OCI et aux politiques autorisées dans Oracle Cloud Infrastructure Identity and Access Management (OCI IAM).
-
Accès aux ressources OCI - Service de transmission de messages OCI, Service des fonctions pour OCI, Chambre forte OCI et services de stockage d'objets OCI.
-
Seau de stockage d'objets OCI existant, chambre forte OCI, base de données OCI avec système de base de données PostgreSQL.
Tâche 1 : Configurer le service de transmission de messages pour OCI
Pour configurer le service de transmission de messages pour OCI, voir Instructions étape par étape pour envoyer des courriels avec le service de transmission de messages pour OCI et Vidéo : Comment configurer le service de transmission de messages dans OCI.
Une fois la configuration terminée, vous devez disposer d'au moins un expéditeur de courriel approuvé et de données d'identification SMTP (Simple Mail Transfer Protocol) pour votre utilisateur OCI.
Tâche 2 : Charger le modèle de courriel dans le seau de stockage d'objets OCI
Téléchargez le modèle de courriel à partir d'ici : Modèle de courriel et chargez-le dans le seau existant.
Tâche 3 : Configurer les adresses des destinataires dans la base de données OCI avec la base de données PostgreSQL
-
Connectez-vous à la base de données OCI avec le système de base de données PostgreSQL. Pour plus d'informations, voir Connexion à une base de données OCI avec PostgreSQL à l'aide de l'interface de ligne de commande PostgreSQL.
-
Créez une table pour les adresses de courriel de destinataire dans la base de données OCI avec la base de données PostgreSQL.
CREATE TABLE emails ( address VARCHAR(255) PRIMARY KEY );
-
Insérez des valeurs dans la table.
INSERT INTO emails (address) VALUES ('email1@example.com'), ('email2@example.com'), ('email3@example.com');
Tâche 4 : Créer des clés secrètes dans la chambre forte OCI
Créez des clés secrètes dans votre chambre forte pour les valeurs sensibles que vous utiliserez, par exemple le nom d'utilisateur et le mot de passe SMTP (utilisés par le service de transmission de messages OCI), la base de données OCI avec le nom d'utilisateur et le mot de passe de base de données PostgreSQL. Ces clés secrètes seront utilisées ultérieurement dans le service des fonctions pour OCI.
Tâche 5 : Configurer le service des fonctions pour OCI
-
Créer une fonction. Pour plus d'informations, voir Fonctions : Démarrer à l'aide de l'interface de ligne de commande.
Note : Dans ce tutoriel, nous utilisons une fonction Python.
Dans ce tutoriel, l'application est nommée
email-delivery-function
et la fonction déployée est nomméeemail_function
. -
Après la configuration de la fonction de base initiale, vous aurez les fichiers suivants dans votre dossier de fonctions.
func.py:
Pour placer le code de fonction Python personnalisé.func.yaml:
Données de configuration de votre fonction.requirements.txt:
Répertorie les dépendances requises par le code de fonction.
-
Téléchargez le code de fonction à partir d'ici : Script Python et remplacez le code dans le fichier
func.py
.Sommaire de ce que fait le script
func.py
:-
Importe les bibliothèques nécessaires pour l'envoi de courriels, l'utilisation des données JSON, l'accès aux services OCI et l'interaction avec une base de données OCI avec la base de données PostgreSQL.
-
Définit les fonctions d'envoi de courriels (
sendEmail
) et de décodage des clés secrètes stockées dans la chambre forte OCI (decodeSecret
). -
Définit une fonction de programme de traitement principal (
handler
) qui :-
Extrait les données d'identification SMTP, l'hôte SMTP, le port SMTP et d'autres valeurs de configuration du contexte de fonction.
-
Extrait le contenu du modèle de courriel du service de stockage d'objets OCI.
-
Extrait les informations sur l'expéditeur et l'objet des données utiles JSON entrantes.
-
Se connecte à une base de données OCI avec la base de données PostgreSQL à l'aide des données d'identification obtenues à partir de la chambre forte OCI.
-
Exécute une interrogation pour extraire les adresses de courriel d'une table de la base de données.
-
Effectue une itération au moyen des adresses de courriel extraites et envoie des courriels à l'aide de la fonction
sendEmail
. -
Retourne un message de réussite indiquant les adresses de courriel auxquelles les courriels ont été envoyés.
-
Note :
-
Remplacez
host
dans le script par votre propre base de données OCI avec le point d'extrémité du système de base de données PostgreSQL situé sous la base de données OCI par la section de connexion PostgreSQL. Vous pouvez également le configurer comme une autre clé secrète dans la chambre forte OCI ou l'extraire des données utiles. -
Si vous voulez exécuter la fonction à partir d'un autre fichier qui n'est pas nommé
func.py
, placez ce fichier dans le dossier de la fonction et modifiez le fichierfunc.yaml
en conséquence.
-
-
Modifiez le fichier
requirements.txt
pour inclure les bibliothèques supplémentaires sur lesquelles repose le nouveau code Python :-
oci
: Garantit que la trousse SDK d'OCI est installée dans l'environnement d'exécution de la fonction lorsque celle-ci est déployée dans le service des fonctions pour OCI. -
psycopg2-binary
: Autorise le code de fonction à se connecter à la base de données OCI et à la manipuler avec la base de données PostgreSQL.
$ cat requirements.txt fdk oci psycopg2-binary
-
-
Ajoutez la configuration suivante au contexte de la fonction. Remplacez l'identificateur Oracle Cloud (OCID) de la chambre forte et l'adresse de la base de données OCI par le point d'extrémité du système de base de données PostgreSQL.
fn config function email-delivery-function email_function db-host "..postgres_endpoint_IP.." fn config function email-delivery-function email_function vault-ocid "ocid1.vault.oc1.eu-frankfurt-1..." fn config function email-delivery-function email_function smtp-host "smtp.email.eu-frankfurt-1.oci.oraclecloud.com" fn config function email-delivery-function email_function smtp-port 587 fn config function email-delivery-function email_function smtp-password "xxxxxxxxxx" fn config function email-delivery-function email_function smtp-username "smtp_username" fn config function email-delivery-function email_function db-username "dbuser" fn config function email-delivery-function email_function db-password "xxxxxxxxxx"
-
Déployez la fonction.
Note : Remplacez
email-delivery-function
par le nom de votre application.fn -v deploy --app email-delivery-function
-
Appelez la fonction. La fonction attend des données utiles qui doivent inclure :
sender-email
: Expéditeur approuvé du service de transmission de messages pour OCI.sender-name
: Nom de l'expéditeur, tel qu'affiché pour le destinataire.subject
: Objet du courriel.
Si nécessaire, remplacez le nom de l'application et le nom de la fonction.
echo '{ "sender-email":"...approved_sender_address...", "sender-name":"Company Test", "subject":"test email" }' | fn invoke email-delivery-function email_function
L'appel de la fonction doit renvoyer le message suivant :
Email successfully sent to ['email1@example.com', 'email2@example.com', 'email3@example.com']!
Liens connexes
Confirmation
- Auteur - Adina Nicolescu (ingénieur en nuage principal)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Integrate OCI Email Delivery Service with OCI Functions, OCI Object Storage, OCI Vault, and OCI Database with PostgreSQL
F96463-01
April 2024