默认情况下,您可以通过浏览器连接到工作站上的 HTTP 端口 80 以及端口 1024 至 65535。您可以通过在工作站配置中设置 allowedPorts 来限制可在工作站上连接的端口。
正在运行的工作站具有 host 属性,您可以使用该属性通过远程浏览器使用 HTTP 进行连接。您可以通过以下方式找到 host 属性:通过 API、Google Cloud CLI、 Google Cloud 控制台获取正在运行的工作站的详细信息,或输出 $WEB_HOST 环境变量(该变量会在工作站内自动设置)。
该网址默认通过端口 80 进行连接。
默认工作站网址格式
默认情况下,host 媒体资源网址采用以下格式:
https://PORT-WORKSTATION_NAME.CLUSTER_ID.cloudworkstations.dev
占位符表示以下内容:
PORT:端口号,默认为端口80。WORKSTATION_NAME:工作站名称。CLUSTER_ID:随机生成的集群标识符。cloudworkstations.dev:工作站的默认域名。自定义域名的网址使用不同的格式。如需详细了解如何在 Cloud Workstations 中设置自定义网域,请参阅为 Cloud Workstations 设置自定义网域。
通过更改网址连接到其他端口
如需通过其他端口进行连接,请指定其他端口号作为前缀。例如,以下网址会连接到端口 9900:
https://9900-myworkstation.cluster-12345abcde.cloudworkstations.dev
在此示例中,请注意以下事项:
9900:表示端口号。myworkstation:表示工作站 ID。cluster-12345abcde:表示集群标识符。cloudworkstations.dev:表示工作站的默认域名。
这些网址需要用户进行身份验证。如需打开这些网址,您必须登录并拥有 Cloud Workstations User IAM 角色 roles/workstations.user 或 workstations.workstations.use 权限。
如果您的工作站集群配置了直接访问端口,则无需将端口编码为前缀,而是可以通过将 :PORT 附加到工作站主机名来连接到配置的端口。例如,将端口 9900 配置为直接访问端口后,以下网址也会连接到端口 9900:
https://myworkstation.cluster-12345abcde.cloudworkstations.dev:9900
从 Google Cloud 控制台连接到 HTTP 应用
您可以从Google Cloud 控制台连接到在工作站上运行的 HTTP 应用。
对于您有权使用的任何正在运行的工作站,您都会看到启动按钮。默认情况下,此按钮通过端口 80 进行连接。您可以点击启动旁边的 arrow_drop_down 展开箭头,查看其他连接选项。通过连接到端口上的 Web 应用选项,您可以指定要连接到的其他端口。
从基础编辑器连接到 HTTP 应用
如需从 Cloud Workstations 基本编辑器连接到工作站上运行的应用,请按照以下任一说明操作:
点击终端中的 localhost 链接。基础编辑器会自动将 localhost 链接重定向到正确的网址。
如需打开终端窗口,请依次点击菜单 菜单 > 终端 > 新建终端。 或者,按 Control+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是工作站主机名。
配置直接访问端口
默认情况下,当您通过将端口编码为网址中的前缀来连接到工作站端口时,您的请求会通过 HTTPS 端口 443 连接到集群网关,并且网关会将请求转发到工作站上的 PORT。
如需使用标准 https://WORKSTATION_NAME.CLUSTER_ID.cloudworkstations.dev:PORT 网址格式直接连接到工作站端口,您必须将该端口配置为工作站集群上的直接访问端口。
如需在现有工作站集群上设置直接访问端口,请运行以下 Google Cloud CLI 命令:
gcloud beta workstations clusters update CLUSTER_ID \
--region=REGION \
--project=PROJECT \
--direct-access-ports=80,8080
您只能将端口 80 以及 1024 到 65535 范围内的端口配置为直接访问端口。此外,每个工作站集群最多只能指定 8 个直接访问端口。
限制工作站的端口访问权限
如需限制工作站上可连接的端口,请在工作站配置中设置 allowedPorts。
如需限制单个端口,请将 PortRange first 和 last 字段设置为相同的端口号。
默认情况下,允许使用端口 22、80 以及 1024 到 65535。
如需创建对 80 和 8080 到 8100 的端口访问受限的工作站配置,请运行以下 Google Cloud CLI 命令:
gcloud workstations configs create CONFIG \
--cluster=CLUSTER_ID \
--region=REGION \
--project=PROJECT \
--allowed-ports=first=80,last=80 \
--allowed-ports=first=8080,last=8100
CORS 预检请求
默认情况下,Cloud Workstations 会确保使用 Cookie 或身份验证标头对工作站的所有 HTTP/HTTPS 请求进行身份验证。
跨域资源共享 (CORS) 预检请求不包含 Cookie 或自定义标头,因此会被视为未经身份验证,并被 Cloud Workstations 屏蔽。管理员可以选择允许未经身份验证的 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