如何为 GCE 实例模板启用 http 流量?
How do I enable http traffic for GCE instance templates?
在 Google Compute Engine 中创建实例模板时,如何为从模板创建的实例启用 http 流量?
我原以为提供一个 http 标签会起作用,但似乎行不通。
以下理论上应该可行,但在实践中却行不通。
一个可能的解决方案是为该项目中的所有实例启用 http 流量。为此,在 GCE 命令行工具中,运行:
gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:80
我不清楚是否可以为特定实例模板设置规则,但希望有人会纠正我。
项目中的默认网络带有默认防火墙规则 "default-allow-http" 和 "default-allow-https" 以允许端口 80 和 443 上的流量。这些规则的目标标记设置为 "http-server"。设置实例模板时,您可以从开发人员控制台选中 "Allow HTTP traffic" 和 "Allow HTTPS traffic" 框,这样默认防火墙规则将应用于通过此实例模板创建的新实例。
One potential solution is to enable http traffic for all of your instances >in that project. To do so, from within GCE command line tools, run:
gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:80
我尝试了您的命令,但它不起作用,因为该命令需要实例的名称:
google130505_student@qwiklabs-gcp-286ef104ac93631b:~$ gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:80
Creating firewall...failed.
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource:
- Invalid value for field 'resource.name': 'FIREWALL_RULE'. Must be a match of regex '(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)'
google130505_student@qwiklabs-gcp-286ef104ac93631b:~$ gcloud compute firewall-rules create gclab2 --allow tcp:80
Creating firewall.../Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-286ef104ac93631b/global/firewalls/gclab2].
Creating firewall...done.
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
gclab2 default INGRESS 1000 tcp:80
所以正确的命令是:
gcloud compute firewall-rules create NAME_OF_YOUR_INSTANCE --allow tcp:80
如果查询允许此虚拟机作为 http 或 https 服务器,那么我刚刚成功使用:
cloud compute instances add-tags myvm1 --tags=http-server
gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:80,tcp:443
这个命令应该可以做到
在 Google Compute Engine 中创建实例模板时,如何为从模板创建的实例启用 http 流量?
我原以为提供一个 http 标签会起作用,但似乎行不通。
以下理论上应该可行,但在实践中却行不通。
一个可能的解决方案是为该项目中的所有实例启用 http 流量。为此,在 GCE 命令行工具中,运行:
gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:80
我不清楚是否可以为特定实例模板设置规则,但希望有人会纠正我。
项目中的默认网络带有默认防火墙规则 "default-allow-http" 和 "default-allow-https" 以允许端口 80 和 443 上的流量。这些规则的目标标记设置为 "http-server"。设置实例模板时,您可以从开发人员控制台选中 "Allow HTTP traffic" 和 "Allow HTTPS traffic" 框,这样默认防火墙规则将应用于通过此实例模板创建的新实例。
One potential solution is to enable http traffic for all of your instances >in that project. To do so, from within GCE command line tools, run:
gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:80
我尝试了您的命令,但它不起作用,因为该命令需要实例的名称:
google130505_student@qwiklabs-gcp-286ef104ac93631b:~$ gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:80
Creating firewall...failed.
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource:
- Invalid value for field 'resource.name': 'FIREWALL_RULE'. Must be a match of regex '(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)'
google130505_student@qwiklabs-gcp-286ef104ac93631b:~$ gcloud compute firewall-rules create gclab2 --allow tcp:80
Creating firewall.../Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-286ef104ac93631b/global/firewalls/gclab2].
Creating firewall...done.
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
gclab2 default INGRESS 1000 tcp:80
所以正确的命令是:
gcloud compute firewall-rules create NAME_OF_YOUR_INSTANCE --allow tcp:80
如果查询允许此虚拟机作为 http 或 https 服务器,那么我刚刚成功使用:
cloud compute instances add-tags myvm1 --tags=http-server
gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:80,tcp:443
这个命令应该可以做到