ワークステーションで実行されている HTTP サーバーにアクセスする

デフォルトでは、ブラウザからワークステーションの HTTP ポート 80 とポート 102465535 にアクセスできます。ワークステーション構成で 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 に自動的にリダイレクトします。

    1. ターミナル ウィンドウを開くには、メニューから [メニュー> [ターミナル] > [新規ターミナル] をクリックします。または、Ctrl+Shift+`(macOS では Command+Shift+`)を押します。

    2. コマンド プロンプトで次のコマンドを実行して、localhost リンクを表示します。

      echo http://localhost:PORT
      

      PORT は、808080 などのポート番号に置き換えます。

    3. Ctrl キー(macOS では Command キー)を押したまま localhost リンクをクリックします。
      これにより、PORT-WORKSTATION-HOSTNAME がブラウザで開きます。

  • ブラウザ ウィンドウを使用して、https://PORT-WORKSTATION-HOSTNAME に移動します。ここで、PORT はポート番号、WORKSTATION-HOSTNAME はワークステーションのホスト名です。

ワークステーションのポート アクセスを制限する

ワークステーションでアクセスできるポートを制限するには、ワークステーション構成で allowedPorts を設定します。

単一のポートへのアクセスを制限するには、PortRange first フィールドと last フィールドを同じポート番号に設定します。

デフォルトでは、ポート 2280102465535 が許可されています。

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