デフォルトでは、ブラウザからワークステーションの HTTP ポート 80
とポート 1024
~65535
にアクセスできます。ワークステーション構成で allowedPorts
を設定することで、ワークステーションでアクセスできるポートを制限できます。
実行中のワークステーションには host
プロパティがあり、これを使用してリモート ブラウザから HTTP を使用して接続できます。host
プロパティを確認するには、API、Google Cloud CLI、 Google Cloud コンソールから実行中のワークステーションの詳細を取得するか、ワークステーション内に自動的に設定される $WEB_HOST
環境変数を出力します。URL はデフォルトでポート 80
に接続します。
デフォルトのワークステーションの URL 形式
host
プロパティの URL は、デフォルトで次の形式を使用します。
https://PORT-WORKSTATION_NAME.CLUSTER_ID.cloudworkstations.dev
プレースホルダは次のものを表します。
PORT
: ポート番号。デフォルトはポート80
です。WORKSTATION_NAME
: ワークステーション名。CLUSTER_ID
: ランダムに生成されたクラスタ識別子cloudworkstations.dev
: ワークステーションのデフォルト ドメイン名。カスタム ドメインの URL の形式は異なります。Cloud Workstations でカスタム ドメインを設定する方法については、Cloud Workstations のカスタム ドメインを設定するをご覧ください。
URL を変更して別のポートに接続する
別のポートに接続するには、接頭辞として別のポート番号を指定します。たとえば、次の URL はポート 9900
に接続します。
https://9900-myworkstation.cluster-12345abcde.cloudworkstations.dev
この例では、次のことに注意してください。
9900
: ポート番号を表します。myworkstation
: ワークステーション ID を表します。cluster-12345abcde
: クラスタ識別子を表します。cloudworkstations.dev
: ワークステーションのデフォルトのドメイン名を表します。
これらの URL にはユーザー認証が必要です。これらの URL にアクセスするには、ログインしたうえで、Cloud Workstations ユーザーの IAM ロール roles/workstations.user
または workstations.workstations.use
権限が必要です。
Google Cloud コンソールから HTTP アプリに接続する
ワークステーションで実行されている HTTP アプリには、Google Cloud コンソールから接続できます。
使用する権限がある実行中のワークステーションには、[起動] ボタンが表示されます。デフォルトでは、このボタンはポート 80
で接続します。[起動] の横にある arrow_drop_down 展開矢印をクリックすると、別の接続オプションが表示されます。[Connect to web app on port] オプションを使用すると、接続する別のポートを指定できます。
ベース エディタから HTTP アプリに接続する
ベースエディタからワークステーション上で実行されているアプリに接続するには、次のいずれかを行います。
ターミナルで localhost リンクをクリックします。ベースエディタは、localhost リンクを正しい URL に自動的にリダイレクトします。
ターミナル ウィンドウを開くには、メニューから [メニュー] > [ターミナル] > [新規ターミナル] をクリックします。または、Ctrl+Shift+`(macOS では Command+Shift+`)を押します。
コマンド プロンプトで次のコマンドを実行して、localhost リンクを表示します。
echo http://localhost:PORT
PORT
は、80
や8080
などのポート番号に置き換えます。Ctrl キー(macOS では Command キー)を押したまま localhost リンクをクリックします。
これにより、PORT-WORKSTATION-HOSTNAME
がブラウザで開きます。
ブラウザ ウィンドウを使用して、
https://PORT-WORKSTATION-HOSTNAME
に移動します。ここで、PORT
はポート番号、WORKSTATION-HOSTNAME
はワークステーションのホスト名です。
ワークステーションのポート アクセスを制限する
ワークステーションでアクセスできるポートを制限するには、ワークステーション構成で allowedPorts
を設定します。
単一のポートへのアクセスを制限するには、PortRange
first
フィールドと last
フィールドを同じポート番号に設定します。
デフォルトでは、ポート 22
、80
、1024
~65535
が許可されています。
80
へのポートアクセスと 8080
から 8100
へのポートアクセスを制限するワークステーション構成を作成するには、次の Google Cloud CLI コマンドを実行します。
gcloud beta workstations configs create CONFIG \ --cluster=CLUSTER_ID \ --region=REGION \ --project=PROJECT \ --allowed-ports=first=80,last=80 \ --allowed-ports=first=8080,last=8100
CORS プリフライト リクエスト
デフォルトでは、ワークステーション サービスは、ワークステーションへのすべてのリクエストが Cookie または認証ヘッダーで認証されるようにします。
クロスオリジン リソース シェアリング(CORS)プリフライト リクエストには Cookie やカスタム ヘッダーが含まれていないため、未認証であるとみなされ、ワークステーション サービスによってブロックされます。管理者は、認証されていない CORS プリフライト リクエストをワークステーションに許可することもできます。この場合、ワークステーション内の宛先サーバーがリクエストの検証を行う責任を負います。
未認証の CORS プリフライト リクエストを許可するには、次の Google Cloud CLI コマンドを実行します。
gcloud beta workstations configs update CONFIG \ --cluster=CLUSTER_ID \ --region=REGION \ --project=PROJECT \ --allow-unauthenticated-cors-preflight-requests
HTTP レスポンスでの localhost の置換を無効にする
開発中のアプリケーションをワークステーションで適切に実行できるように、Cloud Workstations は、ワークステーションからの HTTP レスポンスで localhost、127.0.0.1、0.0.0.0 への参照をワークステーションのホスト名に置き換えます。
これにより、一部のアプリが干渉する可能性があります。この動作を無効にするには、次の Google Cloud CLI コマンドを実行します。
gcloud beta workstations configs update CONFIG \ --cluster=CLUSTER_ID \ --region=REGION \ --project=PROJECT \ --disable-localhost-replacement