Autonomous Databaseインスタンスでの汎用スクリプトの起動
Autonomous Databaseで、BASH、CまたはPythonタイプの汎用スクリプトを起動できます。
- Autonomous Databaseでの汎用スクリプトの実行について
Autonomous Databaseインスタンスから、Bash、CまたはPythonで記述されたスクリプトを含む汎用スクリプトを起動できます。 - WalletのアップロードによるEXTPROCエージェント・インスタンスへのセキュアな接続の作成
自己署名付きウォレットは、EXTPROC
エージェント・アプリケーションの作成の一部として作成されます。このウォレットを使用すると、Autonomous DatabaseインスタンスからEXTPROC
エージェント・インスタンスにアクセスできます。 - 汎用スクリプトを起動するステップ
Autonomous Databaseで汎用スクリプトを起動するステップを示します。
親トピック: ユーザー定義関数の起動
Autonomous Databaseでの汎用スクリプトの実行について
Autonomous Databaseインスタンスから、Bash、CまたはPythonで記述されたスクリプトを含む汎用スクリプトを起動できます。
Autonomous Databaseインスタンスで汎用スクリプトを直接実行することはできません。かわりに、スクリプトは、Oracle Cloud Infrastructure Virtual Cloud Network (VCN)で実行されているOracle Autonomous Database Extprocコンテナ・イメージにリモートでホストされます。Oracle Schedulerジョブを使用して、Autonomous Databaseから汎用スクリプトを起動します。作成するOracle Schedulerジョブは、実行可能ジョブである必要があります。実行可能ジョブは、シェル・スクリプトまたはその他の実行可能ファイルを実行できます。
この機能は、Oracleデータベース・リリース19cでのみサポートされます。
Autonomous Databaseからの汎用スクリプトは、データベースがプライベート・エンドポイントにある場合にのみサポートされます。汎用スクリプトを実行するには、EXTPROC
エージェントがインストールされた状態でOracle Autonomous Databaseコンテナ・イメージを取得、インストールおよび構成する必要があります。Autonomous DatabaseのEXTPROC
コンテナ・イメージを使用すると、BASH、CまたはPythonで記述された外部プロシージャおよびスクリプトをAutonomous Databaseからコールできます。EXTPROC
エージェント・インスタンスはプライベート・サブネットでホストされ、Autonomous Databaseはリバース接続エンドポイント(RCE)を介してEXTPROC
エージェントにアクセスします。
汎用スクリプトは、次を使用してデプロイされます。
-
EXTPROC
エージェントがインストールされたOracle提供のAutonomous Databaseコンテナ・イメージ。Oracleは、GitHubパッケージにコンテナ・イメージを提供します。EXTPROC
コンテナ・イメージを取得および構成する手順は、GitHub READMEを参照してください。EXTPROC
エージェント・インスタンスは、Oracle Cloud Infrastructure Virtual Cloud Network (VCN)で実行されているコンテナ・イメージでリモートでホストされます。Autonomous DatabaseとEXTPROC
エージェント・インスタンス間のセキュアな通信は、プライベート・エンドポイントで実行されているAutonomous DatabaseインスタンスからEXTPROC
エージェント・インスタンスへのトラフィックが許可されるように、ネットワーク・セキュリティ・グループ(NSG)ルールを設定することで保護されます。EXTPROC
エージェント・イメージは、ポート16000で外部プロシージャをホストおよび実行するように事前構成されています。 -
エンドポイント環境を登録し、登録されたエンドポイントに対する権限を管理するPL/SQLプロシージャ。詳細は、DBMS_CLOUD_FUNCTION_ADMINパッケージを参照してください。
-
汎用スクリプトを起動するスケジューラ・ジョブおよびプログラムを作成および管理するためのPL/SQLプロシージャ。
詳細は、DBMS_SCHEDULERを参照してください。
次のステップに従って、Autonomous Databaseインスタンスから汎用スクリプトを実行します:
-
EXTPROC
コンテナ・イメージを取得および構成します。詳細は、GitHub READMEを参照してください。 -
EXTPROC
エージェント・インスタンスに接続するようにAutonomous Databaseを構成します。詳細は、EXTPROCエージェント・インスタンスへのセキュアな接続を作成するためのWalletのアップロードを参照してください。 -
Autonomous Databaseで汎用スクリプトを起動します。詳細は、「汎用スクリプトを起動するステップ」を参照してください。
WalletのアップロードによるEXTPROCエージェント・インスタンスへのセキュアな接続の作成
自己署名ウォレットは、EXTPROC
エージェント・アプリケーションの作成の一部として作成されます。このウォレットを使用すると、Autonomous DatabaseインスタンスからEXTPROC
エージェント・インスタンスにアクセスできます。
EXTPROC
エージェント・インスタンスで汎用スクリプトを実行するには、Autonomous DatabaseおよびEXTPROC
エージェントは、Mutual Transport Layer Security (mTLS)を使用して接続します。mTLSを使用してEXTPROCエージェントに接続する場合、信頼できるクライアント認証局(CA)証明書で標準のTLS 1.2を使用してTCPS (セキュアなTCP)データベース接続を使用します。詳細は、Autonomous Databaseインスタンスへの接続についてを参照してください。
認証局(CA)によって発行されたパブリック証明書を取得して使用することもできます。
前提条件として、EXTPROC
が実行されているVMの/u01/app/oracle/wallets/extproc_wallet/
ディレクトリからオブジェクト・ストレージにウォレットをエクスポートする必要があります。これにより、Autonomous Databaseはウォレットを使用してEXTPROC
に安全にアクセスできます。
EXTPROC
ウォレットをAutonomous Databaseインスタンスにアップロードします:
汎用スクリプトを起動する手順
Autonomous Databaseで汎用スクリプトを起動するステップを示します。
汎用スクリプトを実行するようにEXTPROC
エージェント・インスタンスを構成した後、リモート・エンドポイントを登録し、汎用スクリプトをコールするスケジューラ・ジョブを作成します。
次に、Autonomous Databaseで汎用スクリプトを起動するための前提条件を示します:
-
汎用スクリプトをEXTPROCエージェント・インスタンスにコピーする必要があります。詳細は、GitHub READMEを参照してください。
-
スケジューラ・ジョブを作成して管理し、ADMIN以外のユーザーで汎用スクリプトを起動するには、次の権限が必要です。
-
MANAGE SCHEDULER
-
CREATE JOB
-
登録済リモート・エンドポイントの権限
-
トピック
- Autonomous Databaseでのリモート・エンドポイントの登録および管理
ADMINユーザーとして、次のステップを実行して、Autonomous Databaseでリモート・エンドポイントを登録および管理します。 - 汎用スクリプトを起動するスケジューラ・ジョブの作成と管理
Autonomous Databaseから汎用スクリプトを起動するスケジューラ・ジョブを作成および管理するステップを示します。
Autonomous Databaseでのリモート・エンドポイントの登録および管理
ADMINユーザーとして、次のステップを実行して、Autonomous Databaseのリモート・エンドポイントを登録および管理します。
リモート・エンドポイントの登録
DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV
を使用して、リモート・エンドポイントを登録します。
例:
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;
/
この例では、rem_executable
ライブラリを作成し、Autonomous Databaseのremote_url
パラメータで指定されたEXTPROC
エージェント・インスタンスを登録します。EXTPROC
エージェント・インスタンスは、ポート16000で汎用スクリプトをホストするように事前構成されています。
詳細は、REGISTER_REMOTE_EXECUTION_ENVプロシージャを参照してください。
登録済エンドポイントの権限の管理
このステップはオプションであり、ADMIN以外のユーザーがAutonomous Databaseから汎用スクリプトを起動する必要がある場合にのみ必要です。
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV
を使用して、登録済エンドポイントに対する権限をADMIN以外のユーザーに付与します。
例:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/
この例では、REM_EXECUTABLE
に対する権限を指定されたユーザーに付与します。詳細は、GRANT_REMOTE_EXECUTION_ENVプロシージャを参照してください。
登録済エンドポイントに対する権限を付与した後、DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV
を使用して、登録済エンドポイントに対する権限をユーザーから取り消すことができます。
例:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/
この例では、指定したユーザーからREM_EXECUTABLE
に対する権限を取り消します。詳細は、REVOKE_REMOTE_EXECUTION_ENVプロシージャを参照してください。
DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT
を問い合せて、すべてのリモート・エンドポイントに付与されている権限をリストできます。詳細は、DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANTビューを参照してください。
登録済エンドポイントの削除
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV
を使用して、登録済リモート・エンドポイントを削除します。
例:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE');
END;
/
これにより、Autonomous Databaseからrem_executable
リモート・エンドポイントが削除されます。詳細は、DEREGISTER_REMOTE_EXECUTION_ENVプロシージャを参照してください。
親トピック: 汎用スクリプトを起動するステップ
汎用スクリプトを起動するスケジューラ・ジョブの作成と管理
Autonomous Databaseから汎用スクリプトを起動するスケジューラ・ジョブを作成および管理するステップを示します。
親トピック: 汎用スクリプトを起動するステップ