アプリに必要なリソースを指定する

このトピックでは、 marketplace.yml ファイルを使用して、 Snowflake Native App のリソース要件を宣言する方法について説明します。

marketplace.yml は、アプリの manifest.yml ファイルに似た構成ファイルです。Snowflakeはこのファイルを次のコンテキストで使用します。

  • required_compute_pools および connections のプロパティで指定されたオブジェクトは、 Snowsight のリストに表示されます。これにより、コンシューマーはアプリに必要なリソースを確認できるようになります。

  • このファイルは、たとえば、コンシューマーがインストールできないリージョンにアプリケーションパッケージを複製するなど、不要なリソースの作成や使用を回避するのに役立ちます。コンシューマーがリモートリージョンのリストを要求する前に、Snowflakeはコンシューマーが marketplace.yml ファイルで宣言されたリソース要件を満たしていることを確認します。これにより、不要な複製コストを防ぐことができます。

  • アプリケーションをインストールおよびアップグレードする前に、 Snowsight は要件が満たされていることを確認し、壊れた/使用できないアプリケーションのインストールや、動作中のアプリケーションを使用できない状態にアップグレードすることを防ぎます。

このオプションのファイルは、 manifest.yml ファイルと同じレベルのアプリのルートディレクトリに配置する必要があります。このファイルが存在しない場合は、アクションは何も実行されません。

アプリに必要なコンピューティングプールを指定する

次の例は、特定のバージョンのアプリに必要なコンピューティングプールリソースを指定する方法を示しています。

required_compute_pools:
  - HIGH_MEM_POOL_1:
      label: "High memory pool"
      description: "A compute pool for computational tasks."
      compatible_instance_families:
        - HIGHMEM_X64_M
        - HIGHMEM_X64_L
Copy

この例では、 required_compute_poolsHIGH_MEM_POOL_1 という名前のコンピューティングプールです。

compatible_instance_families プロパティは、コンピューティングプールにプロビジョニングするマシンのタイプを指定します。各コンピューティングプールに対して宣言された値を少なくとも1つ指定する必要があります。詳細については、 CREATE COMPUTE POOL をご参照ください。

注釈

compatible_instance_families プロパティが欠落しているか値が無効な場合、バージョンの作成は失敗します。

アプリに必要な外部エンドポイントを指定する

次の例は、アプリに必要な外部エンドポイントを宣言する方法を示しています。

connections:
  - LAUNCH_DARKLY:
     label: "Launch Darkly"
     description: "Feature flag and configuration"
     required: true
     endpoints:
       - "mobile.launchdarkly.com"
       - "stream.launchdarkly.com"
  - OPEN_AI:
     label: "OpenAPI"
     description: "LLM Connection"
     required: false
     endpoints:
       - "openai.com"
Copy

この例では、 connection プロパティは LAUNCH_DARKLYOPEN_AI という2つの外部エンドポイントを指定しています。 required プロパティは、 Snowsight 内のコンシューマーに接続が必要であることを示します。

このファイルで connection を指定すると、 endpointsrequired プロパティが必要になります。これらのプロパティが存在しない場合、バージョンの作成は失敗します。 endpoints プロパティには、少なくとも1つの URL が必要です。