関数のスケジュール
OCI Functionsでファンクションをスケジュールする方法をご覧ください。
前提条件および詳細は、スケジューリング関数を参照してください。
コンソールを使用してファンクションをスケジュールする場合、リソース・スケジューラで新規リソース・スケジュールを作成し、次を使用してファンクションをリソース・スケジュールに追加できます。
- OCI Functionsコンソール・ページ
- リソース・スケジューラ・コンソール・ページ
既存のリソース・スケジュールを編集または削除する場合、またはリソース・スケジュールからファンクションを削除するには、リソース・スケジューラ・コンソール・ページを使用する必要があります(詳細は、リソース・スケジューラ・ドキュメントのスケジュールの管理を参照)。
OCI Functions Consoleページを使用してリソースをスケジュールするには、リソース・スケジューラでスケジュールを作成します:
- 「アプリケーション」リスト・ページで、操作する関数を含むアプリケーションを選択します。リストページまたはアプリケーションの検索に関するヘルプが必要な場合は、「アプリケーションのリスト」を参照してください。
-
「Functions」タブを選択します。
「関数」リスト・ページが開きます。選択したアプリケーションのすべての関数が表に表示されます。
- スケジュールするファンクションの名前を選択し、「スケジュール」を選択して、ファンクションの「スケジュール」ページを表示します。
ファンクションがすでに追加されている現在のコンパートメント内の既存のスケジュールが表示されます。
- OCIファンクション・コンソールの「スケジュール」ページで、「スケジュールの追加」を選択して、ファンクションをスケジュールに追加します。
作成した新しいスケジュールにファンクションを追加したり(この項で説明)、すでに作成した既存のスケジュールにファンクションを追加できます。
- 「新規スケジュールの作成」を選択し、次の詳細を指定します:
- 名前: 新しいリソース・スケジュールの任意の名前。機密情報の入力は避けてください。
- 説明: (オプション)新しいリソース・スケジュールのわかりやすい説明。
- コンパートメント:新しいリソース・スケジュールを作成するコンパートメントです。
-
次のオプションのいずれかを選択して、スケジュールの詳細を入力する方法を指定します。
- フォーム・インタフェース: UIのフィールドを使用してスケジュールを定義するには、このオプションを選択します。
- Cron式: Cron式を入力してスケジュールを定義するには、このオプションを選択します。
- スケジュールの定義方法として「フォーム・インタフェース」を選択した場合は、「間隔」フィールドを使用してスケジュールの時間間隔を選択し、次のように時間間隔に適したその他の詳細を指定します。
- 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時間と日付、および(オプションで)スケジュールを終了する日付を入力します。
「要約」フィールドには、入力したスケジュールのテキスト・バージョンが表示されます。
- スケジュールの定義方法として「Cron式」を選択した場合は、次の詳細を入力します。
- Cron式:スケジュール間隔を設定するには、有効なCron式を入力します。例:
- 毎週月曜日、火曜日、水曜日、木曜日、金曜日にUTC 13:30に機能を実行するようにスケジュールを設定するには、次のように入力します。
30 13 * * mon-fri
- 毎月15日に2時間ごとに機能を実行するようにスケジュールを設定するには、次のように入力します。
0 */2 15 * *
- 毎週月曜日、火曜日、水曜日、木曜日、金曜日にUTC 13:30に機能を実行するようにスケジュールを設定するには、次のように入力します。
- 時間:スケジュールを開始するUTC時間を入力します。
- 開始日:スケジュールを開始する日付を入力します。
- 終了日: (オプション)スケジュールが終了する日付を入力します。
Cron式の詳細は、リソース・スケジューラのドキュメントのCron式の使用を参照してください。
- Cron式:スケジュール間隔を設定するには、有効なCron式を入力します。例:
- (オプション)引数と値を関数に渡すには、「呼出しペイロードの追加」オプションを選択し、関数に必要な形式で引数と値を入力します。ファンクションで引数と値がJSONと予想される場合は、有効なJSON形式を使用します。
- (オプション)リソースにタグを適用するには、「タグの追加」を選択します。リソースを作成する権限を持つ場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する許可が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に問い合せてください。タグは後で適用できます。
-
「作成」を選択してスケジュールを作成し、そのスケジュールにファンクションを追加します。
新しいリソース・スケジュールは、OCI関数コンソールの関数の「スケジュール」ページに表示されます。
リソース・スケジュールを作成し、それにファンクションを追加した後、リソース・スケジュールのOCIDを含むルールを持つ動的グループと、そのファンクションへの動的グループ・アクセス権を付与するポリシー・ステートメントの両方を作成する必要があります。
- リソース・スケジュールを選択してその詳細をリソース・スケジューラ・コンソールに表示し、スケジュールのOCIDをコピーします。たとえば、
ocid1.resourceschedule.oc1.phx.amaaaaaa3______owq
です。 - 動的グループを作成するにはの手順に従って動的グループを作成し、動的グループに名前(
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'}
- ポリシーを作成するにはの手順に従って、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
ファンクションは、定義したリソース・スケジュールに従って起動されます。
リソース・スケジューラ・コンソール・ページを使用して、リソース・スケジューラでスケジュールを作成してファンクションをスケジュールするには:
- ファンクション開発者としてコンソールにサインインします。
- ナビゲーション・メニューを開き、「ガバナンスと管理」を選択します。「リソース・スケジューラ」で、「スケジュール」を選択します。
- OCI Functionsで使用しているリージョンを選択します。
Fn ProjectのCLIコンテキストで指定されているDockerレジストリと同じリージョンを使用することをお薦めします。 Oracle Cloud Infrastructureに接続するためのFnプロジェクトのCLIコンテキストの作成を参照してください。
- リソース・スケジューラ・コンソールの「スケジュール」ページで、「スケジュールの作成」を選択して新しいリソース・スケジュールを作成します。
- 「基本情報」ページで、リソース・スケジュールに次の値を指定します。
- スケジュール名:リソース・スケジュールに対して選択した名前。機密情報の入力は避けてください。
- スケジュール摘要: (オプション)リソース・スケジュールの有意義な摘要。
- 実行するアクション: 「開始」を選択します。
- コンパートメント:リソース・スケジュールを作成するコンパートメントです。
- 拡張オプションの表示:リソースにタグを適用するには、このオプションを選択します。リソースを作成する権限を持つ場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する許可が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に問い合せてください。タグは後で適用できます。
- 「次」を選択します。
- 「リソース」ページで、次のようにスケジュールする機能を選択します:
- 「リソース選択方法」オプションから、「静的- 特定のリソースにスケジュールを適用」オプションを選択します。
- 「検索およびフィルタ」ボックスで、デフォルト・フィルタ(「すべてコンパートメント」)を使用してすべてのコンパートメントのリソースを検索するか、「コンパートメント」を選択してリソースを検索する特定のコンパートメントを選択します。
- 「検索およびフィルタ」ボックスで、「リソース・タイプ」を選択します。
- リソース・タイプのリストからFunctionsFunctionを選択し(選択した他のリソース・タイプを選択解除)、「適用」を選択します。
選択したコンパートメント内のファンクションが表示されます。
- スケジュールする機能を選択します。
- 「次」を選択します。
- 「スケジュール」ページで、関数を実行するタイミングと頻度、およびリソース・スケジュールの開始と終了のタイミングを指定します。
リソース・スケジュールの設定の詳細は、スケジュール情報の追加を参照してください。
- 「次」を選択します。
- 「確認」ページで、入力した情報を確認し、「スケジュールの作成」を選択して機能をスケジュールします。
新しいリソース・スケジュールは、リソース・スケジューラ・コンソールの「スケジュール」ページに表示されます。
リソース・スケジュールを作成し、それにファンクションを追加した後、リソース・スケジュールのOCIDを含むルールを持つ動的グループと、そのファンクションへの動的グループ・アクセス権を付与するポリシー・ステートメントの両方を作成する必要があります。
- 詳細を表示するリソース・スケジュールを選択し、スケジュールのOCIDをコピーします。たとえば、
ocid1.resourceschedule.oc1.phx.amaaaaaa3______owq
です。 - 動的グループを作成するにはの手順に従って動的グループを作成し、動的グループに名前(
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'}
- ポリシーを作成するにはの手順に従って、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を使用して、ファンクションをスケジュールします。