関数のスケジュール

OCI Functionsでファンクションをスケジュールする方法をご覧ください。

前提条件および詳細は、スケジューリング関数を参照してください。

  • コンソールを使用してファンクションをスケジュールする場合、リソース・スケジューラで新規リソース・スケジュールを作成し、次を使用してファンクションをリソース・スケジュールに追加できます。

    • OCI Functionsコンソール・ページ
    • リソース・スケジューラ・コンソール・ページ

    既存のリソース・スケジュールを編集または削除する場合、またはリソース・スケジュールからファンクションを削除するには、リソース・スケジューラ・コンソール・ページを使用する必要があります(詳細は、リソース・スケジューラ・ドキュメントのスケジュールの管理を参照)。

    OCI Functions Consoleページを使用してリソースをスケジュールするには、リソース・スケジューラでスケジュールを作成します:

    1. 「アプリケーション」リスト・ページで、操作する関数を含むアプリケーションを選択します。リストページまたはアプリケーションの検索に関するヘルプが必要な場合は、「アプリケーションのリスト」を参照してください。
    2. 「Functions」タブを選択します。

      「関数」リスト・ページが開きます。選択したアプリケーションのすべての関数が表に表示されます。

    3. スケジュールするファンクションの名前を選択し、「スケジュール」を選択して、ファンクションの「スケジュール」ページを表示します。

      ファンクションがすでに追加されている現在のコンパートメント内の既存のスケジュールが表示されます。

    4. OCIファンクション・コンソールの「スケジュール」ページで、「スケジュールの追加」を選択して、ファンクションをスケジュールに追加します。

      作成した新しいスケジュールにファンクションを追加したり(この項で説明)、すでに作成した既存のスケジュールにファンクションを追加できます。

    5. 「新規スケジュールの作成」を選択し、次の詳細を指定します:
      • 名前: 新しいリソース・スケジュールの任意の名前。機密情報の入力は避けてください。
      • 説明: (オプション)新しいリソース・スケジュールのわかりやすい説明。
      • コンパートメント:新しいリソース・スケジュールを作成するコンパートメントです。
    6. 次のオプションのいずれかを選択して、スケジュールの詳細を入力する方法を指定します。

      • フォーム・インタフェース: UIのフィールドを使用してスケジュールを定義するには、このオプションを選択します。
      • Cron式: Cron式を入力してスケジュールを定義するには、このオプションを選択します。
    7. スケジュールの定義方法として「フォーム・インタフェース」を選択した場合は、「間隔」フィールドを使用してスケジュールの時間間隔を選択し、次のように時間間隔に適したその他の詳細を指定します。
      • 1回限り:スケジュールを開始するUTCの日時を入力します。
      • 時間:スケジュールを繰り返す頻度(1 = 毎時、2 = 2時間ごと、3 = 3時間ごと)、スケジュールを開始するUTC時間と日付、および(オプションで)スケジュールを終了する日付を入力します。
      • 日次:スケジュールを繰り返す頻度(1 = 毎日、2 = 2日ごと、3 = 3日ごと)、スケジュールを開始するUTC時間と日付、および(オプションで)スケジュールを終了する日付を入力します。
      • 週次:スケジュールを繰り返す頻度(1 = 毎週、2 = 2週間ごと、3 = 3週間ごと)、スケジュールが機能を実行する曜日、スケジュールを開始するUTC時間と日付、および(オプションで)スケジュールを終了する日付を入力します。
      • 月次:スケジュールを繰り返す頻度(1 = 毎月、2 = 2か月ごと、3 = 3か月ごと)、スケジュールを実行する月の日数、スケジュールを開始するUTC時間と日付、および(オプションで)スケジュールを終了する日付を入力します。

      「要約」フィールドには、入力したスケジュールのテキスト・バージョンが表示されます。

    8. スケジュールの定義方法として「Cron式」を選択した場合は、次の詳細を入力します。
      • Cron式:スケジュール間隔を設定するには、有効なCron式を入力します。例:
        • 毎週月曜日、火曜日、水曜日、木曜日、金曜日にUTC 13:30に機能を実行するようにスケジュールを設定するには、次のように入力します。
          30 13 * * mon-fri
        • 毎月15日に2時間ごとに機能を実行するようにスケジュールを設定するには、次のように入力します。
          0 */2 15 * *
      • 時間:スケジュールを開始するUTC時間を入力します。
      • 開始日:スケジュールを開始する日付を入力します。
      • 終了日: (オプション)スケジュールが終了する日付を入力します。

      Cron式の詳細は、リソース・スケジューラのドキュメントのCron式の使用を参照してください。

    9. (オプション)引数と値を関数に渡すには、「呼出しペイロードの追加」オプションを選択し、関数に必要な形式で引数と値を入力します。ファンクションで引数と値がJSONと予想される場合は、有効なJSON形式を使用します。
    10. (オプション)リソースにタグを適用するには、「タグの追加」を選択します。リソースを作成する権限を持つ場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する許可が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に問い合せてください。タグは後で適用できます。
    11. 「作成」を選択してスケジュールを作成し、そのスケジュールにファンクションを追加します。

      新しいリソース・スケジュールは、OCI関数コンソールの関数の「スケジュール」ページに表示されます。

      リソース・スケジュールを作成し、それにファンクションを追加した後、リソース・スケジュールのOCIDを含むルールを持つ動的グループと、そのファンクションへの動的グループ・アクセス権を付与するポリシー・ステートメントの両方を作成する必要があります。

    12. リソース・スケジュールを選択してその詳細をリソース・スケジューラ・コンソールに表示し、スケジュールのOCIDをコピーします。たとえば、ocid1.resourceschedule.oc1.phx.amaaaaaa3______owqです。
    13. 動的グループを作成するにはの手順に従って動的グループを作成し、動的グループに名前(resource-scheduler-prod-dynamic-groupなど)を指定し、次のように動的グループのルールを指定します。
      ALL {resource.type='resourceschedule', resource.id='<resource-schedule-OCID>'}

      <resource-schedule-OCID>は、以前にコピーしたリソース・スケジュールのOCIDです。例:

      ALL {resource.type='resourceschedule', resource.id='ocid1.resourceschedule.oc1.phx.amaaaaaa3______owq'}
    14. ポリシーを作成するにはの手順に従って、OCIファンクションのファンクションへの新しい動的グループ・アクセス権を付与するポリシーを作成し、ポリシーに名前(resource-scheduler-prod-dyn-grp-policyなど)を指定し、次のようなポリシー・ステートメントを指定します:
      Allow dynamic-group <dynamic-group-name> to manage functions-family in tenancy

      <dynamic-group-name>は、前のステップで作成した動的グループの名前です。例:

      Allow dynamic-group resource-scheduler-prod-dynamic-group to manage functions-family in tenancy

    ファンクションは、定義したリソース・スケジュールに従って起動されます。

    リソース・スケジューラ・コンソール・ページを使用して、リソース・スケジューラでスケジュールを作成してファンクションをスケジュールするには:

    1. ファンクション開発者としてコンソールにサインインします。
    2. ナビゲーション・メニューを開き、「ガバナンスと管理」を選択します。「リソース・スケジューラ」で、「スケジュール」を選択します。
    3. OCI Functionsで使用しているリージョンを選択します。

      Fn ProjectのCLIコンテキストで指定されているDockerレジストリと同じリージョンを使用することをお薦めします。 Oracle Cloud Infrastructureに接続するためのFnプロジェクトのCLIコンテキストの作成を参照してください。

    4. リソース・スケジューラ・コンソールの「スケジュール」ページで、「スケジュールの作成」を選択して新しいリソース・スケジュールを作成します。
    5. 「基本情報」ページで、リソース・スケジュールに次の値を指定します。
      • スケジュール名:リソース・スケジュールに対して選択した名前。機密情報の入力は避けてください。
      • スケジュール摘要: (オプション)リソース・スケジュールの有意義な摘要。
      • 実行するアクション: 「開始」を選択します。
      • コンパートメント:リソース・スケジュールを作成するコンパートメントです。
      • 拡張オプションの表示:リソースにタグを適用するには、このオプションを選択します。リソースを作成する権限を持つ場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する許可が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に問い合せてください。タグは後で適用できます。
    6. 「次」を選択します。
    7. 「リソース」ページで、次のようにスケジュールする機能を選択します:
      1. 「リソース選択方法」オプションから、「静的- 特定のリソースにスケジュールを適用」オプションを選択します。
      2. 「検索およびフィルタ」ボックスで、デフォルト・フィルタ(「すべてコンパートメント」)を使用してすべてのコンパートメントのリソースを検索するか、「コンパートメント」を選択してリソースを検索する特定のコンパートメントを選択します。
      3. 「検索およびフィルタ」ボックスで、「リソース・タイプ」を選択します。
      4. リソース・タイプのリストからFunctionsFunctionを選択し(選択した他のリソース・タイプを選択解除)、「適用」を選択します。

        選択したコンパートメント内のファンクションが表示されます。

      5. スケジュールする機能を選択します。
    8. 「次」を選択します。
    9. 「スケジュール」ページで、関数を実行するタイミングと頻度、およびリソース・スケジュールの開始と終了のタイミングを指定します。

      リソース・スケジュールの設定の詳細は、スケジュール情報の追加を参照してください。

    10. 「次」を選択します。
    11. 「確認」ページで、入力した情報を確認し、「スケジュールの作成」を選択して機能をスケジュールします。

      新しいリソース・スケジュールは、リソース・スケジューラ・コンソールの「スケジュール」ページに表示されます。

      リソース・スケジュールを作成し、それにファンクションを追加した後、リソース・スケジュールのOCIDを含むルールを持つ動的グループと、そのファンクションへの動的グループ・アクセス権を付与するポリシー・ステートメントの両方を作成する必要があります。

    12. 詳細を表示するリソース・スケジュールを選択し、スケジュールのOCIDをコピーします。たとえば、ocid1.resourceschedule.oc1.phx.amaaaaaa3______owqです。
    13. 動的グループを作成するにはの手順に従って動的グループを作成し、動的グループに名前(resource-scheduler-prod-dynamic-groupなど)を指定し、次のように動的グループのルールを指定します。
      ALL {resource.type='resourceschedule', resource.id='<resource-schedule-OCID>'}

      <resource-schedule-OCID>は、以前にコピーしたリソース・スケジュールのOCIDです。例:

      ALL {resource.type='resourceschedule', resource.id='ocid1.resourceschedule.oc1.phx.amaaaaaa3______owq'}
    14. ポリシーを作成するにはの手順に従って、OCIファンクションのファンクションへの新しい動的グループ・アクセス権を付与するポリシーを作成し、ポリシーに名前(resource-scheduler-prod-dyn-grp-policyなど)を指定し、次のようなポリシー・ステートメントを指定します:
      Allow dynamic-group <dynamic-group-name> to manage functions-family in tenancy

      <dynamic-group-name>は、前のステップで作成した動的グループの名前です。例:

      Allow dynamic-group resource-scheduler-prod-dynamic-group to manage functions-family in tenancy

    ファンクションは、定義したリソース・スケジュールに従って起動されます。

  • resource-scheduler schedule createコマンドと必要なパラメータを使用して、関数をスケジュールします。

    詳細は、スケジュールの作成を参照してください

    OCI CLIコマンドのフラグおよび変数オプションの完全なリストは、コマンドライン・リファレンスを参照してください。

  • リソース・スケジューラCreateSchedule APIを使用して、ファンクションをスケジュールします。