Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le 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.
Diffuser des données dans une base de données Oracle Autonomous Transaction Processing à l'aide du service des fonctions pour OCI
Présentation
Dans ce tutoriel, nous verrons comment créer et déployer un pipeline de données en continu en temps réel à l'aide des services Oracle Cloud Infrastructure (OCI). Le pipeline transmet les données d'un flux OCI à une base de données Oracle Autonomous Database en tirant parti du centre de connecteurs OCI et du service des fonctions pour OCI. La fonction est écrite en Java, employant la méthode d'authentification du principal de ressource pour un accès sécurisé aux services OCI et un portefeuille de base de données pour établir une connexion avec Oracle Autonomous Database.
Service de diffusion en continu pour OCI : OCI offre un éventail d'outils pour le traitement des données dans le nuage, le service de diffusion en continu pour OCI étant l'un de ces services personnalisés pour les flux de données à haut débit en temps réel. En tirant parti du service de diffusion en continu pour OCI, les développeurs peuvent créer des pipelines de données évolutifs et fiables qui ingèrent, traitent et distribuent efficacement les flux de données.
Service des fonctions pour OCI : Le service des fonctions pour OCI est une plate-forme de fonctions-service sur demande, entièrement gérée, multilocataire, très évolutive. Elle repose sur OCI de niveau entreprise et utilise le moteur à source ouverte Fn Project. Utilisez le service des fonctions pour OCI lorsque vous voulez vous concentrer sur l'écriture de code pour répondre à des besoins d'affaires.
Authentification du principal de ressource : Vous pouvez utiliser un principal de ressource pour authentifier les ressources OCI et y accéder. Le principal de ressource est constitué d'un jeton de session temporaire et de données d'identification sécurisées qui permettent au service des fonctions pour OCI de s'authentifier auprès d'autres services OCI, tels que le service de diffusion en continu pour OCI.
Centre de connecteurs OCI : Le centre de connecteurs OCI est une plate-forme de bus de messages en nuage qui offre un point unique pour la description, l'exécution et la surveillance des interactions lors du déplacement des données entre les services OCI.
Note :
- Ce tutoriel est conçu uniquement à des fins éducatives et d'étude. Il fournit un environnement pour les apprenants d'expérimenter et d'acquérir une expérience pratique dans un cadre contrôlé. Il est crucial de noter que les configurations et les pratiques de sécurité utilisées dans ce tutoriel pourraient ne pas convenir aux scénarios réels.
- Les considérations de sécurité pour les applications réelles sont souvent beaucoup plus complexes et dynamiques. Par conséquent, avant de mettre en œuvre l'une des techniques ou configurations présentées ici dans un environnement de production, il est essentiel de procéder à une évaluation et à un examen complets de la sécurité. Cet examen devrait englober tous les aspects de la sécurité, y compris le contrôle d'accès, le chiffrement, la surveillance et la conformité, afin de s'assurer que le système est conforme aux politiques et aux normes de sécurité de l'organisation.
- La sécurité doit toujours être une priorité absolue lors de la transition d'un environnement de laboratoire vers un déploiement réel.
Objectifs
- Créez un pipeline de données en continu transparent qui traite les messages en temps réel. Lorsqu'un nouveau message est publié dans un flux OCI, il est automatiquement transféré et traité par le service des fonctions pour OCI, qui charge ensuite les données dans la base de données Oracle Autonomous Transaction Processing (ATP). Cette solution de bout en bout présente une ingestion et une transformation efficaces des données à l'aide des services OCI, ce qui assure une intégration sécurisée et évolutive entre la diffusion en continu et les systèmes de base de données.
Préalables
-
Oracle Cloud Infrastructure :
-
Compte Oracle avec autorisations d'accès au niveau administrateur.
-
Compartiment pour créer vos ressources.
Note : Notez le nom et l'ID compartiment.
-
VCN avec un sous-réseau privé. Pour plus d'informations, voir Création d'un réseau en nuage virtuel.
Note : Notez l'OCID du VCN et le nom du sous-réseau. Vous en aurez besoin pour le groupe de flux et les fonctions.
-
Créez un groupe de flux sur le sous-réseau privé à partir de votre VCN. Pour plus d'informations, voir Création d'un groupe de flux.
-
Créez un flux nommé
myfirststream
dans le même groupe de flux créé précédemment. Pour plus d'informations, voir Création d'un flux. -
Une base de données Oracle Autonomous Database. Pour plus d'informations, voir Oracle Autonomous Database.
-
Une chambre forte OCI pour stocker des clés secrètes. Pour plus d'informations, voir Création d'une chambre forte.
-
Jeton d'authentification OCI permettant de se connecter au registre de conteneurs OCI. Pour plus d'informations, voir Génération d'un jeton d'authentification pour permettre la connexion à Oracle Cloud Infrastructure Registry.
-
-
Environnement Cloud Shell pour OCI :
- Un Cloud Shell pour OCI est nécessaire pour déployer la fonction vers OCI. Si vous n'avez pas d'OCI Cloud Shell, vous pouvez utiliser un hôte bastion à la place. Pour plus d'informations, voir Aperçu du service d'hôte bastion.
Tâche 1 : Configurer des groupes dynamiques
Connectez-vous à la console OCI, naviguez jusqu'à votre domaine, cliquez sur Groupes dynamiques et créez un groupe avec les informations suivantes.
-
Nom du groupe : Entrez
MyFunctions
.ALL {resource.type = 'fnfunc', resource.compartment.id = 'pasteYourCompartmentOCID'}
Tâche 2 : Créer des politiques
Allez à la console OCI, naviguez jusqu'à Politiques et créez les politiques avec les informations suivantes.
-
Nom de la politique : Entrez
FunctionsPolicies
.Allow dynamic-group MyFunctions to {STREAM_INSPECT, STREAM_READ, STREAM_CONSUME, STREAM_PRODUCE} in compartment YOUR-COMPARTMENT-NAME Allow dynamic-group MyFunctions to read repos in compartment YOUR-COMPARTMENT-NAME Allow dynamic-group MyFunctions to read objects in compartment YOUR-COMPARTMENT-NAME Allow dynamic-group MyFunctions to read secret-bundles in compartment YOUR-COMPARTMENT-NAME
Tâche 3 : Créer un registre de conteneurs OCI
-
Allez à la console OCI, naviguez jusqu'à Services de développement, Conteneurs et artefacts, sélectionnez Registre de conteneurs et cliquez sur Créer un référentiel pour créer un référentiel privé pour l'image de la fonction.
-
Nom du référentiel : Entrez
lab/fn-java-event-to-atp
.
-
-
Vérifiez les référentiels et notez l'espace de noms.
-
Ouvrez l'OCI Cloud Shell où l'interface de ligne de commande OCI et Docker doivent être installés, puis connectez-vous au registre. Vérifiez quelle est l'URL correcte pour votre région. Dans ce tutoriel, nous utiliserons Brésil - Est (Sao Paulo), où l'URL du registre est
gru.ocir.io
.Note : Vous aurez besoin du jeton d'authentification d'utilisateur créé dans la section Préalables.
docker login gru.ocir.io Username: <your container namespace>/youruser Password: YOUR_AUTH_TOKEN_CREATED_EARLIER
Tâche 4 : Créer un seau de stockage d'objets OCI pour stocker votre portefeuille de base de données
Allez à la console OCI, naviguez jusqu'à Stockage, Stockage d'objets et stockage d'archives, Seaux et cliquez sur Créer un seau pour créer un seau nommé Wallet
pour stocker le fichier zip de portefeuille de base de données.
Tâche 5 : Télécharger le portefeuille de base de données et le stocker dans le seau de stockage d'objets OCI
Note : Cet exemple de code montre comment se connecter à une base de données Oracle Autonomous Database en toute sécurité à l'aide d'un portefeuille. Pour continuer, vous devrez configurer vos données d'identification de portefeuille et établir un mot de passe à utiliser tout au long de ce tutoriel.
-
Allez à la console OCI, naviguez jusqu'à Oracle Database, cliquez sur Autonomous Database et sélectionnez votre DAV.
-
Cliquez sur Connexion à la base de données.
-
Entrez votre mot de passe de portefeuille et notez-le, vous aurez besoin de ce mot de passe dans votre application.
-
Allez au seau de stockage d'objets OCI créé à la tâche 4 et cliquez sur Charger pour charger le fichier zip de portefeuille téléchargé.
Tâche 6 : Stocker en toute sécurité les données d'identification de la base de données et le mot de passe du portefeuille dans votre chambre forte
Note : Comme préalable, assurez-vous d'avoir déjà créé une chambre forte.
-
Allez à la console OCI, naviguez jusqu'à Identité et sécurité, Chambre forte et sélectionnez votre chambre forte.
-
Cliquez sur Clés secrètes, Créer une clé secrète et créez des clés secrètes avec les informations suivantes.
Nom de clé secrète Valeur MYRDBMS_WALLET_PASSWORD
Mot de passe de votre portefeuille en texte brut MYRDBMS_DB_PASSWORD
Mot de passe de votre base de données en texte brut Note Assurez-vous de sélectionner Texte brut pour Modèle de type de clé secrète.
Répétez ce processus pour MYRDBMS_DB_PASSWORD
et notez les deux OCID qui seront utilisés pour la configuration de la fonction.
Tâche 7 : Créer le service des fonctions pour OCI Java pour recevoir le message d'événement et l'insérer dans la base de données ATP
Note Assurez-vous de sélectionner votre sous-réseau privé, le même sous-réseau que celui du groupe de flux.
-
Allez à la console OCI, naviguez jusqu'à Services de développement, Fonctions, Applications et cliquez sur Créer une application.
-
Allez à Cloud Shell pour OCI où Docker, l'interface de ligne de commande OCI et l'interface de ligne de commande Fn Project sont installés et exécutez la commande suivante pour initialiser la fonction.
Note : Si vous avez suivi les tâches, votre commande de connexion Docker a déjà été exécutée maintenant, sinon, passez aux étapes de journal Docker de la tâche 3.
-
Vérifiez le contexte courant, car vous utilisez OCI Cloud Shell, il doit déjà être configuré dans le contexte courant.
fn list context
-
Exécutez la commande suivante pour mettre à jour vos paramètres de fonction afin de pouvoir extraire des images du registre de conteneurs créé au cours de la tâche 3.
fn update context oracle.compartment-id PASTE_YOUR_COMPARTMENT_OCID fn update context registry gru.ocir.io/PASTE_YOUR_REGISTRY_NAMESPACE/lab fn list context
Note : Dans ce tutoriel, nous utilisons la région Brésil - Est (Sao Paulo). Si vous utilisez une autre région, vous devez modifier l'URL d'API et l'emplacement REGISTRY.
-
Exécutez la commande suivante pour vérifier si l'application que vous avez créée est listée dans votre Cloud Shell pour OCI.
Note : Assurez-vous que Cloud Shell pour OCI utilise Réseau : Public
fn list apps
-
Obtenez l'exemple de code de fonction Java à partir d'ici : fn-java-event-to-atp.zip et chargez-le dans votre Cloud Shell pour OCI, puis décompressez le fichier.
-
Cliquez sur le menu au coin supérieur droit et sélectionnez Charger pour charger le fichier.
-
Exécutez la commande suivante pour décompresser le fichier.
# check your file is there ls -lrt # unzip the file unzip fn-java-event-to-atp.zip # check again ls -lrt
Note : Ce projet Java concis extrait l'entrée de données JSON du centre de connecteurs OCI, l'analyse selon un format prédéfini et insère de façon transparente les informations extraites dans votre base de données ATP. Pour assurer l'insertion appropriée des données, consultez les étapes suivantes pour obtenir des conseils sur le format de message requis et la table correspondante dans votre base de données ATP.
-
Dans Cloud Shell pour OCI, exécutez la commande suivante pour créer le code et déployer la fonction.
fn deploy --app MyApp # After deploy complete, check the function is there: fn list functions MyApp |grep fn-java-event-to-atp
-
Allez à la console OCI, naviguez jusqu'à Services de développement, Fonctions, Applications, sélectionnez votre application (
Myapp
) et cliquez sur votre fonction.Note L'exemple de code Java de ce tutoriel utilise des variables de configuration pour établir une connexion à la base de données. Assurez-vous de fournir les valeurs appropriées de votre environnement pour garantir une exécution réussie.
-
Créez toutes les configurations suivantes.
Nom/clé secrète | Valeur |
---|---|
WALLET_BUCKET | Wallet |
WALLET_OBJECT | nom de votre fichier zip |
BUCKET_NAMESPACE | Votre espace de noms de seau |
DB_USER | Votre nom d'utilisateur de base de données |
DB_SERVICE_NAME | le nom du service de base de données que vous trouvez dans les détails de connexion à votre base de données |
DB_PASSWORD_OCID_VAULT | coller votre OCID de clé secrète |
DB_WALLET_PASSWORD_OCID_VAULT | coller votre OCID de clé secrète |
Tâche 8 : Créer une nouvelle table sur la base de données ATP
Créez une nouvelle table nommée MY_TABLE
dans la base de données ATP afin de recevoir des données de la diffusion en continu.
-
Sélectionnez Oracle Autonomous Database sur lequel vous avez téléchargé le portefeuille, cliquez sur le menu déroulant Actions de base de données, puis sur SQL.
-
Exécutez la commande LDD de création de table suivante.
Note Cet exercice utilise l'utilisateur ADMIN pour les connexions à la base de données. Remplacez votre propre nom d'utilisateur s'il diffère.
CREATE TABLE "ADMIN"."MY_TABLE" ( "CODE" VARCHAR2(50 BYTE), "NAME" VARCHAR2(500 BYTE) ) ;
Tâche 9 : Configurer le centre de connecteurs OCI pour appeler la fonction lorsque le nouveau message arrive dans le flux
Maintenant que vous avez créé la fonction et la nouvelle table pour stocker les données, il est temps de tout connecter ensemble! Pour ce faire, nous configurerons un pipeline qui circule du service de diffusion en continu pour OCI, au moyen du centre de connecteurs OCI, et enfin vers le service des fonctions pour OCI.
-
Allez à la console OCI, naviguez jusqu'à Analyse et intelligence artificielle, Messagerie et cliquez sur Centre de connecteurs.
-
Cliquez sur Créer un connecteur et entrez les informations suivantes.
- Nom du connecteur : Entrez
StreamingToFN
. - Source : Sélectionnez Diffusion en continu.
- Cible : Sélectionnez Fonctions.
Note Comme préalable, assurez-vous d'avoir déjà créé votre groupe de flux et votre flux nommé
myfirststream
. - Nom du connecteur : Entrez
-
Dans Configurer la source, sélectionnez votre groupe de flux et votre flux.
-
Dans Configurer la cible, sélectionnez MyApp comme application de fonction et fn-java-event-to-atp comme fonction.
Note Vous devrez peut-être créer des politiques supplémentaires, comme suggéré dans la page Créer un connecteur.
Tâche 10 : Créer un message sur le service de diffusion en continu pour OCI et vérifier le fonctionnement du pipeline
Note L'exemple de code Java fourni est conçu pour traiter les messages d'une structure JSON particulière. Le code analyse ce JSON pour extraire les données nécessaires, puis les insère dans la table
MY_TABLE
. Tout écart par rapport au format JSON attendu entraîne des erreurs d'analyse et empêche l'insertion de la base de données.
Exemple de message JSON :
{"code": "001", "name":"Larry"}
Procédez de la façon suivante :
-
Allez à la console OCI, naviguez jusqu'à Analyse et intelligence artificielle, Messagerie, Diffusion en continu, sélectionnez votre flux (
myfirststream
) et cliquez sur Produire un message de test. -
Dans Données, entrez l'exemple de message JSON et cliquez sur Produire.
Note Le pipeline de flux peut connaître un démarrage à froid lors de sa première exécution, ce qui peut entraîner un délai notable. Ceci est une conséquence de l'initialisation de la fonction qui se produit lors de la première tentative du concentrateur de connecteur d'envoyer un message.
Tâche 11 : Valider les données arrivées sur la base de données
-
Sélectionnez la base de données Oracle Autonomous Database sur laquelle vous avez téléchargé le portefeuille, cliquez sur le menu déroulant Actions de base de données et cliquez sur SQL.
-
Exécutez l'interrogation suivante.
select * from admin.my_table;
Dépannage et conseils
-
Activez les journaux pour votre fonction et vérifiez les erreurs éventuelles. Pour plus d'informations sur la journalisation, voir Stockage et consultation des journaux de fonction.
-
Vérifiez que toutes les politiques sont en place, comme indiqué dans la section Préalables.
-
Activez les journaux pour le centre de connecteurs OCI. Pour plus d'informations, voir Journaux pour le centre de connecteurs.
Liens connexes
Confirmation
- Auteur - Joao Tarla (ingénieur de la solution d'équipe A Oracle LAD)
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.
Stream Data to Oracle Autonomous Transaction Processing Database using OCI Functions
G25952-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.