Appel de scripts génériques sur une instance Autonomous Database
Vous pouvez appeler des scripts génériques, de type BASH, C ou Python sur votre base de données Autonomous AI.
- A propos de l'exécution de scripts génériques sur une base de données Autonomous AI
Vous pouvez appeler des scripts génériques, y compris des scripts écrits en Bash, C ou Python, à partir d'une instance de base de données Autonomous AI. - Téléchargement du portefeuille pour créer une connexion sécurisée vers l'instance d'agent EXTPROC
Un portefeuille auto-signé est créé dans le cadre de la création de l'application d'agentEXTPROC. Ce portefeuille vous permet d'accéder à l'instance d'agentEXTPROCà partir d'une instance de base de données Autonomous AI. - Etapes d'appel de scripts Python
Affiche les étapes permettant d'appeler des scripts Python sur une base de données d'IA autonome.
Rubrique parent : Appel de fonctions définies par l'utilisateur
A propos de l'exécution de scripts génériques sur une base de données Autonomous AI
Vous pouvez appeler des scripts génériques, y compris des scripts écrits en Bash, C ou Python, à partir d'une instance de base de données Autonomous AI.
Vous ne pouvez pas exécuter un script générique directement sur une instance de base de données Autonomous AI. Au lieu de cela, le script est hébergé à distance sur une image de conteneur Oracle Autonomous AI Database Extproc exécutée dans un réseau cloud virtuel Oracle Cloud Infrastructure (VCN). Vous appelez des scripts génériques à partir de votre base de données Autonomous AI à l'aide des travaux Oracle Scheduler. Le travail Oracle Scheduler que vous créez doit être un travail exécutable. Les travaux exécutables peuvent exécuter des scripts shell ou d'autres exécutables.
Les scripts génériques de votre base de données Autonomous AI ne sont pris en charge que lorsque votre base de données se trouve sur une adresse privée. Pour exécuter des scripts génériques, vous devez obtenir, installer et configurer l'image de conteneur Oracle Autonomous AI Database avec l'agent EXTPROC installé. L'image de conteneur EXTPROC de la base de données Autonomous AI permet d'appeler des procédures et des scripts externes écrits en BASH, C ou Python à partir de votre base de données Autonomous AI. L'instance d'agent EXTPROC est hébergée sur un sous-réseau privé et la base de données Autonomous AI accède à l'agent EXTPROC via une adresse de connexion inverse (RCE).
Les scripts génériques sont déployés à l'aide des éléments suivants :
-
Image de conteneur de base de données Autonomous AI fournie par Oracle avec l'agent
EXTPROCinstallé. Oracle fournit l'image de conteneur sur les packages GitHub.Reportez-vous au fichier GitHub README pour obtenir des instructions sur l'obtention et la configuration de l'image de conteneur
EXTPROC:L'instance d'agent
EXTPROCest hébergée à distance sur une image de conteneur exécutée dans un réseau cloud virtuel Oracle Cloud Infrastructure (VCN). La communication sécurisée entre votre base de données Autonomous AI et l'instance d'agentEXTPROCest sécurisée en définissant des règles de groupe de sécurité réseau de sorte que le trafic soit autorisé entre l'instance de base de données Autonomous AI exécutée sur une adresse privée et l'instance d'agentEXTPROC. L'image de l'agentEXTPROCest préconfigurée pour héberger et exécuter des procédures externes sur le port 16000. -
Procédures PL/SQL permettant d'inscrire des environnements d'adresse et de gérer les privilèges sur les adresses inscrites. Pour plus d'informations, reportez-vous à la section DBMS_CLOUD_FUNCTION_ADMIN Package.
-
Procédures PL/SQL permettant de créer et de gérer des travaux et des programmes du planificateur pour appeler des scripts génériques.
Pour plus d'informations, reportez-vous à DBMS_SCHEDULER.
Pour exécuter un script générique à partir d'une instance de base de données Autonomous AI, procédez comme suit :
-
Obtenez et configurez l'image de conteneur
EXTPROC. Pour plus d'informations, reportez-vous à GitHub README. -
Configurez votre base de données Autonomous AI pour vous connecter à l'instance d'agent
EXTPROC. Pour plus d'informations, reportez-vous à Téléchargement de portefeuille vers l'instance d'agent EXTPROC pour créer une connexion sécurisée. -
Appelez des scripts génériques sur votre base de données Autonomous AI. Pour plus d'informations, reportez-vous à Etapes d'appel de scripts Python.
Rubrique parent : Appel de scripts génériques sur une instance Autonomous Database
Télécharger le portefeuille pour créer une connexion sécurisée à l'instance d'agent EXTPROC
Un portefeuille auto-signé est créé dans le cadre de la création de l'application d'agent EXTPROC. Ce portefeuille vous permet d'accéder à l'instance d'agent EXTPROC à partir d'une instance de base de données Autonomous AI.
Pour exécuter des scripts génériques sur l'instance d'agent EXTPROC, la base de données Autonomous AI et l'agent EXTPROC se connectent à l'aide du protocole MTLS (Mutual Transport Layer Security). Lorsque vous connectez à l'agent EXTPROC avec mTLS, vous utilisez une connexion de base de données TCPS (Secure TCP) à l'aide du protocole TLS 1.2 standard avec un certificat d'autorité de certification (CA) client sécurisé. Pour plus d'informations, reportez-vous à A propos de la connexion à une instance de base de données Autonomous AI.
Vous pouvez également obtenir et utiliser un certificat public émis par une autorité de certification.
Vous devez au préalable exporter le portefeuille vers Object Storage à partir du répertoire /u01/app/oracle/wallets/extproc_wallet/ sur la machine virtuelle où EXTPROC est exécuté. Cela permet à la base de données Autonomous AI d'utiliser le portefeuille pour accéder en toute sécurité à EXTPROC.
Téléchargez le portefeuille EXTPROC vers l'instance de base de données Autonomous AI :
Rubrique parent : Appel de scripts génériques sur une instance Autonomous Database
Etapes d'appel de scripts Python
Affiche les étapes permettant d'appeler des scripts Python sur une base de données Autonomous AI.
Une fois que vous avez configuré l'instance d'agent EXTPROC pour exécuter des scripts Python, vous inscrivez une adresse distante et créez des travaux de planificateur pour appeler les scripts.
Les prérequis suivants permettent d'appeler des scripts Python sur une base de données Autonomous AI :
-
Les scripts génériques doivent être copiés dans l'instance d'agent EXTPROC. Pour plus d'informations, reportez-vous à GitHub README.
-
Pour créer et gérer des travaux du planificateur afin d'appeler des scripts Python avec un utilisateur autre qu'ADMIN, vous devez disposer des privilèges suivants :
-
MANAGE SCHEDULER -
CREATE JOB -
Privilège sur l'adresse distante inscrite
-
Sujets
- Inscription et gestion d'une adresse distante sur Autonomous Database
En tant qu'utilisateur ADMIN, effectuez les étapes suivantes pour inscrire et gérer des adresses distantes dans votre base de données Autonomous AI. - Création et gestion de travaux de planificateur pour appeler des scripts génériques
Affiche les étapes de création et de gestion de travaux de planificateur pour appeler des scripts génériques à partir d'une base de données Autonomous AI.
Rubrique parent : Appel de scripts génériques sur une instance Autonomous Database
Inscription et gestion d'une adresse distante sur Autonomous Database
En tant qu'utilisateur ADMIN, effectuez les étapes suivantes pour inscrire et gérer les adresses distantes dans votre base de données Autonomous AI.
Inscription d'une adresse distante
Utilisez DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV pour inscrire une adresse distante.
Exemple :
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV (
remote_endpoint_name => 'rem_executable',
remote_endpoint_url => 'remote_extproc_hostname:16000',
wallet_dir => 'WALLET_DIR',
remote_cert_dn => 'CN=MACHINENAME'
);
END;
/Cet exemple crée la bibliothèque rem_executable et inscrit l'instance d'agent EXTPROC indiquée dans le paramètre remote_url dans votre base de données Autonomous AI. L'instance d'agent EXTPROC est préconfigurée pour héberger des scripts génériques sur le port 16000.
Pour plus d'informations, reportez-vous à Procédure REGISTER_REMOTE_EXECUTION_ENV.
Gestion des privilèges sur une adresse inscrite
Cette étape est facultative et n'est requise que lorsqu'un utilisateur autre que l'administrateur doit appeler des scripts génériques à partir d'une base de données Autonomous AI.
Utilisez DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV pour accorder le privilège sur l'adresse inscrite à un utilisateur autre que l'administrateur.
Exemple :
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV (
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/Cet exemple accorde le privilège sur REM_EXECUTABLE à l'utilisateur indiqué. Pour plus d'informations, reportez-vous à Procédure GRANT_REMOTE_EXECUTION_ENV.
Une fois que vous avez accordé le privilège sur l'adresse inscrite, vous pouvez utiliser DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV pour révoquer le privilège sur l'adresse inscrite en tant qu'utilisateur.
Exemple :
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV (
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/Cet exemple révoque le privilège sur REM_EXECUTABLE de l'utilisateur indiqué. Pour plus d'informations, reportez-vous à Procédure REVOKE_REMOTE_EXECUTION_ENV.
Vous pouvez interroger DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT pour répertorier les droits d'accès accordés à toutes les adresses distantes. Pour plus d'informations, reportez-vous à DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT View.
Suppression d'une adresse inscrite
Utilisez DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV pour enlever une adresse distante inscrite.
Exemple :
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV (
remote_endpoint_name => 'REM_EXECUTABLE');
END;
/Cette opération enlève l'adresse distante rem_executable de votre base de données Autonomous AI. Pour plus d'informations, reportez-vous à Procédure DEREGISTER_REMOTE_EXECUTION_ENV.
Rubrique parent : Etapes d'appel de scripts Python
Créer et gérer des travaux du planificateur pour appeler des scripts génériques
Affiche les étapes de création et de gestion des travaux du planificateur pour appeler des scripts génériques à partir de la base de données Autonomous AI.
Rubrique parent : Etapes d'appel de scripts Python