3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[OCI]Always FreeのAutonomous Databaseを使用してOCI Functionsのファンクションを定期実行してみた

Last updated at Posted at 2023-10-24

はじめに

OCI FunctionsのファンクションをAutonomous DatabaseからSQLファンクションとして呼び出せるようになったので、Autonomous Databaseを使用してOCI Functionsのファンクションを定期実行させてみました。

1. OCI FunctionsのファンクションをSQLファンクションとして呼び出すための設定

こちらの記事を参考に、OCI FunctionsのファンクションをAutonomous DatabaseからPL/SQLファンクションとして実行できるように設定します。
(ここではobject_storage_file_zipというファンクションを対象にしています)

2. OCI Functionsのファンクションを実行するPL/SQLプロシージャの作成

OCI Functionsのファンクションobject_storage_file_zipを実行するPL/SQLプロシージャEXECUTE_OCI_FUNCTIONを作成します。

SQL> CREATE OR REPLACE PROCEDURE EXECUTE_OCI_FUNCTION
     IS
       result CLOB;
     BEGIN
       SELECT object_storage_file_zip(
         '{
            "COMPARTMENT_ID": "ocid1.compartment.oc1..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
            "REGION": "ap-tokyo-1",
            "SOURCE_BUCKET": "SourceBucket",
            "SOURCE_FILES": "/",
            "TARGET_BUCKET": "TargetBucket",
            "ALLOW_OVERWRITE": "true"
         }' 
       ) as response INTO result
       FROM dual;
     END;
     /

Procedure EXECUTE_OCI_FUNCTION compiled

SQL>

3. OCI Functionsのファンクションを実行するPL/SQLプロシージャを定期実行するDBMS_SCHEDULERジョブの作成

作成したPL/SQLプロシージャEXECUTE_OCI_FUNCTIONを日本時間2023/10/25 0:20に初回実行し、その後10分間隔で定期実行するDBMS_SCHEDULERジョブEXECUTE_OCI_FUNCTION_JOBを作成します。

SQL> BEGIN
     DBMS_SCHEDULER.CREATE_JOB (
          job_name           =>  'EXECUTE_OCI_FUNCTION_JOB',
          job_type           =>  'STORED_PROCEDURE',
          job_action         =>  'ADMIN.EXECUTE_OCI_FUNCTION', 
          start_date         =>  TO_TIMESTAMP_TZ('2023-10-25 00:20:00 +9:00','YYYY-MM-DD HH24:MI:SS TZH:TZM'),
          repeat_interval    =>  'FREQ=MINUTELY;INTERVAL=10',
          auto_drop          =>  FALSE,
          enabled            =>  TRUE,
          job_class          =>  'HIGH'
      );
     END;
     /

PL/SQL procedure successfully completed.

SQL> 

4. 動作確認

しばらく待ってからOCI Functionsのファンクションのログを確認してみます。

スクリーンショット 2023-10-25 0.58.24.png

OCI Functionsのファンクションが2023/10/24 15:20:00 UTC(2023/10/25 0:20 JST)に初回実行され、その後10分間隔で定期実行されていることが確認できました。

以上で、Autonomous Databaseを使用してOCI Functionsのファンクションを定期実行することが可能なことが確認できました。

参考情報

DBMS_SCHEDULER.CREATE_JOBプロシージャ

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?