アプリホスティングは、これらのフレームワークで開発されたWebアプリの構成のないビルドおよびデプロイサポートを提供します。
このレポは、これらのフレームワークのサポートを可能にするアダプターのコードを保持します。高レベルでは、これらのアダプターがフレームワーク固有の構成を、アプリホスティングがフレームワークサポートの構成に使用できる出力バンドル仕様に変換します。詳細については、フレームワーク統合を参照してください。
App Hosting Output Bundleは、さまざまなフレームワークがアプリのホスティング展開を構成およびカスタマイズして、サポートを強化できるようにするファイルベースの仕様です。
アプリホスティング出力バンドルに従ってビルド出力を生成できるフレームワークは、アプリホスティングに展開できます。
出力バンドルは、主に.apphostingディレクトリの内側にあるbundle.yamlファイルで構成されています。このbundle.yamlには、ユーザーがアプリケーションを展開するときにFrameworksがアプリホスティングを構成できるすべての方法が含まれています。
注記
アプリホスティングは、すべてのすべてのノードアプリケーションを技術的にサポートしますが、出力バンドルなしではカスタムフレームワーク機能が有効になることはありません。
出力バンドルは、単一のファイルに含まれています。
.apphosting/bundle.yamlこのファイルが存在してスキーマに従う限り、アプリのホスティングはビルドを適切に処理できます。
スキーマはソースにも見つけることができます
interface OutputBundle {
version : "v1"
runConfig : RunConfig ;
metadata : Metadata ;
}このversion 、現在使用されている出力バンドルバージョンを表しています。現在のバージョンはV1です。
runConfigフィールドは、バックエンドをホストするアプリに関連付けられているクラウドランサービスを構成します。
interface RunConfig {
runCommand : string ;
environmentVariables ?: EnvVarConfig [ ] ;
concurrency ?: number ;
cpu ?: number ;
memoryMiB ?: number ;
minInstances ?: number ;
maxInstances ?: number ;
}| 分野 | タイプ | 説明 | 必須? |
|---|---|---|---|
runCommand | string | サーバーを開始するコマンド( node dist/index.jsなど)。このコマンドがワークスペースのルートディレクトルから実行されていると仮定します。これは、Server Startコマンドの生産バージョンである必要があります。 | y |
environmentVariables | EnvVarConfig[] | サーバー実行環境に存在する環境変数。 | n |
concurrency | number | 各サーバーインスタンスが受信できる同時リクエストの最大数。 | n |
cpu | number | 単一のサーバーインスタンスで使用されるCPUの数。 | n |
memoryMiB | number | サーバーインスタンスで利用可能なメモリの量。 | n |
minInstance | number | 特定の時間に共存する可能性のある関数インスタンスの最小数の制限。 | n |
MaxInstance | number | 特定の時間に共存する可能性のある関数インスタンスの最大数の制限。 | n |
これらのフィールドの多くは、 apphosting.yamlと共有されています。追加のコンテキストとデフォルト値については、runconfigリファレンスドキュメントを参照してください。
interface EnvVarConfig {
variable : string ;
value : string ;
availability : 'RUNTIME'
}| 分野 | タイプ | 説明 | 必須? |
|---|---|---|---|
variable | string | 環境変数の名前 | y |
value | string | 環境変数に関連する値 | y |
availability | RUNTIME | 変数が利用可能になる場所。今のところ、これは常にRUNTIMEです | y |
interface Metadata {
adapterPackageName : string ;
adapterVersion : string ;
framework : string ;
frameworkVersion ?: string ;
}| 分野 | タイプ | 説明 | 必須? |
|---|---|---|---|
adapterPackageName | string | アダプターの名前(これはNPMパッケージ名である必要があります) | y |
adapterVersion | string | アダプターのバージョン | y |
framework | string | サポートされているフレームワークの名前 | y |
frameworkVersion | string | サポートされているフレームワークのバージョン | n |
これがサンプルのbundle.yamlファイルをすべてまとめます:
> cat .apphosting/bundle.yaml
version: v1
runConfig:
runCommand:
- node
- dist/index.js
environmentVariables:
- variable: VAR
value: 8080
availability: RUNTIME
concurrency: 80
cpu: 2
memoryMiB: 512
minInstances: 0
maxInstances: 14
metadata:
adapterNpmPackageName: npm-name
adapterVersion: 12.0.0
frameworkNpmPackageName: framework-name
adapterVersion: 1.0.0
この形式でbundle.yamlがある限り、アプリのホスティングはサーバーサイドレンダリングをサポートするフレームワークを展開できます。