ファンクションの更新

OCI Functionsの既存の関数を更新する方法をご覧ください。

前提条件、サポートされる更新プロパティおよびソース・タイプ固有の更新動作については、関数の更新を参照してください。

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

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

    3. 更新するファンクションの「アクション」メニュー(3つのドット)から、「編集」を選択し、使用可能なプロパティを更新します。更新できるソース・プロパティは、ファンクション・ソース・タイプによって異なります。
      • イメージベース関数の場合、次のソース・プロパティを更新できます:
        • リポジトリ・コンパートメント:イメージを含む現在のリージョンのOCIコンテナ・レジストリのリポジトリを含むコンパートメント。
        • リポジトリ:イメージを含む現在のリージョンのOCIコンテナ・レジストリ内のリポジトリ。
        • イメージ: 現在のリージョンのOCIコンテナ・レジストリ・リポジトリ内の既存のイメージ。イメージの名前とタグが、ファンクションが元々ベースとされていたイメージと同じ場合は、イメージ・ベースのファンクションのイメージ・ダイジェストに関するノートを参照してください。
      • コード専用関数の場合、アーカイブ・ソースおよびランタイム設定を更新できます。Java、PythonおよびNode.jsコード専用関数のHandlerプロパティを更新することもできます。コードのみの関数の更新を参照してください。
      • メモリー(MB):ファンクションが実行時に使用できるメモリーの最大量。
      • 同期呼出しタイムアウト(秒):同期モードで起動したときにファンクションが実行できる最大時間。同期モードでの関数の呼出しの詳細は、関数の呼出しを参照してください。
      • デタッチされた起動構成:デタッチ・モードで起動されたファンクションの実行方法を指定します。
        • デタッチされた起動タイムアウト(秒):デタッチ・モードで起動したときに、ファンクションが実行できる最大時間。
        • 成功宛先: (オプション)ファンクションがデタッチ・モードで起動されると、デタッチされた呼出しが成功したときに呼出しレコードの書込み先になります。デタッチされた呼出しの結果でサポートされる宛先は、通知サービス、キュー・サービスおよびストリーミング・サービスです。選択した宛先に応じて、追加の詳細を入力するように求められます(たとえば、通知サービスの場合、トピック・コンパートメントとトピックを選択します)。宛先サービスに書き込むには、OCI FunctionsにIAM権限が必要です。必要な権限がまだ存在しない場合は、適切なIAMポリシーが作成されていることを確認するように求められます(「デタッチされた呼出しの成功および失敗の宛先のためのIAMポリシーの作成」を参照)。
        • 失敗宛先: (オプション)ファンクションがデタッチ・モードで起動されると、デタッチされた起動が失敗したときに起動レコードの書込み先になります。デタッチされた呼出しの結果でサポートされる宛先は、通知サービス、キュー・サービスおよびストリーミング・サービスです。選択した宛先に応じて、追加の詳細を入力するように求められます(たとえば、通知サービスの場合、トピック・コンパートメントとトピックを選択します)。宛先サービスに書き込むには、OCI FunctionsにIAM権限が必要です。必要な権限がまだ存在しない場合は、適切なIAMポリシーが作成されていることを確認するように求められます(「デタッチされた呼出しの成功および失敗の宛先のためのIAMポリシーの作成」を参照)。

        デタッチ・モードでのファンクションの呼出しの詳細は、ファンクションの起動を参照してください。

      • プロビジョニングされた同時実行性の有効化:実行インフラストラクチャを常時使用可能にする同時ファンクション呼出しの最小数を指定することで、ファンクションの起動時の初期遅延を最小限に抑えることができます。

        このオプションを選択した場合は、「プロビジョニングされた同時実行性ユニット(PCU)」の値を入力して、同時ファンクション呼出しの最小数を指定します。入力する実際のPCU値は、10の倍数である必要があります。Memoryが256Mバイトに設定されている場合、PCU値は20の倍数である必要があります。Memoryが128Mバイトに設定されている場合、PCU値は40の倍数である必要があります。使用可能なPCUの合計数は、ファンクションのサイズ、テナンシ制限、およびプロビジョニングされた同時実行性がテナンシ内の他のファンクションに対して有効になっているかどうかによって異なります。プロビジョニングされた同時実行性の詳細は、「プロビジョニングされた同時実行性を使用した初期待機時間の短縮」を参照してください。

    4. OCI Functionsのファンクションを更新するには、「変更の保存」を選択します。
  • イメージベースの関数に対するFn Project CLIの使用

    ヒント

    時々、Fn ProjectCLIの新しいバージョンがリリースされます。最新バージョンがインストールされていることを定期的に確認することをお勧めします。詳細は、Fn ProjectのCLIをアップグレードするステップを参照してください。

    Fn Project CLIを使用して、OCI Functionsの既存のイメージベース・ファンクションを更新するには:

    1. ファンクション開発者として開発環境にログインします。

    2. ターミナル・ウィンドウで、次のように入力して既存のイメージベース・ファンクションのプロパティを更新します:

      fn update function <app-name> <function-name> --image <image-name> --<property> <value>

      ここでは:

      • <app-name>は、既存のファンクションを含む既存のアプリケーションの名前です。
      • <function-name>は、更新する既存のファンクションの名前です。
      • --image <image-name> (オプション)は、以前に指定したイメージではなく、イメージベース・ファンクションのベースとなるDockerレジストリ内の既存のイメージの名前です。イメージの名前とタグが、ファンクションが元々ベースとされていたイメージと同じ場合は、イメージ・ベースのファンクションのイメージ・ダイジェストに関するノートを参照してください。
      • --<property> <value> (オプション)は更新するプロパティと、それに含める新しい値です。プロパティおよび有効な値のリストを表示するには、fn update function --helpと入力します。

      例:

      fn update function acmeapp acme-func --image phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.4 --timeout-in-seconds 60
      fn update function acmeapp acme-func --memory 256

      既存のイメージベース・ファンクションのプロパティが、指定した値に更新されます。

    3. 次を入力して、ファンクションが更新されていることを確認します:

      fn inspect function <app-name> <function-name>

      例:

      fn inspect function acme-app acme-func

      出力:

      {
          "annotations": {
              "fnproject.io/fn/invokeEndpoint": "https://fht7ns4mn2q.us-phoenix-1.functions.oci.oraclecloud.com/20181201/functions/ocid1.fnfunc.oc1.phx.aaaa____uxoa/actions/invoke",							
              "oracle.com/oci/compartmentId": "ocid1.compartment.oc1..aaaaaaaaw______nyq"
          },
          "app_id": "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca",
          "created_at": "2018-07-26T12:50:53.000Z",
          "format": "default",
          "id": "ocid1.fnfunc.oc1.phx.aaaa____uxoa",
          "image": "phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.4",
          "memory": 256,
          "name": "acme-func",
          "timeout": 60,
          "updated_at": "2018-07-26T13:59:18.000Z"
      }

    OCI CLIの使用

    ファンクションを更新するには、oci fn function updateコマンドと必要なパラメータを使用します:

    oci fn function update --function-id <function-ocid> [OPTIONS]

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

  • UpdateFunction API操作を実行してファンクションを更新します。