AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过互联网共享运行的应用程序
在预览运行的应用程序后,您可以通过 Internet 为其他人提供该应用程序。
如果 Amazon EC2 实例已连接到您的环境,请按照以下步骤操作。否则,请查阅您的服务器的文档。
步骤 1:获取实例的 ID 和 IP 地址
在此步骤中,您将记下连接到环境的 Amazon EC2 实例的实例 ID 和公有 IP 地址。您需要在后面的步骤中使用实例 ID 以允许传入应用程序请求。然后,与其他人分享该公有 IP 地址,以便他们可以访问运行的应用程序。
-
获取亚马逊 EC2 实例的 ID。要获取该 ID,请执行下列操作之一:
-
在 AWS Cloud9 IDE 环境的终端会话中,运行以下命令以获取 Amazon EC2 实例的 ID。
curl http://169.254.169.254/latest/meta-data/instance-id
实例 ID 采用以下格式:
i-12a3b456c789d0123
。记下该实例 ID。 -
在环境的 IDE 中,在菜单栏上,选择您的用户图标,然后选择 “管理 EC2 实例”。
在显示的 Amazon EC2 控制台中,记下实例 ID 列中显示的实例 ID。实例 ID 采用以下格式:
i-12a3b456c789d0123
。
-
-
获取亚马逊 EC2 实例的公有 IP 地址。要获取该 ID,请执行下列操作之一:
-
在环境的 IDE 中,在菜单栏上选择 Share(共享)。在 Share this environment(共享此环境)对话框中,记下 Application(应用程序)框中的公有 IP 地址。公有 IP 地址采用以下格式:
192.0.2.0
。 -
在 IDE 环境的终端会话中,运行以下命令以获取 Amazon EC2 实例的公有 IP 地址。
curl http://169.254.169.254/latest/meta-data/public-ipv4
公有 IP 地址采用以下格式:
192.0.2.0
。记下该公有 IP 地址。 -
在环境的 IDE 中,在菜单栏上,选择您的用户图标,然后选择 “管理 EC2 实例”。在显示的 Amazon EC2 控制台中,在 “描述” 选项卡上,记下公有 IP 字段的IPv4 公有 IP 地址。公有 IP 地址采用以下格式:
192.0.2.0
。
注意
您的应用程序的公有 IP 地址可能会在应用程序的实例重启时发生变化。要防止您的 IP 地址发生变化,请分配弹性 IP 地址。然后,将该地址分配给正在运行的实例。有关说明,请参阅 Amazon EC2 用户指南中的分配弹性 IP 地址和将弹性 IP 地址与正在运行的实例关联起来。分配弹性 IP 地址可能会 AWS 账户 导致您产生费用。有关更多信息,请参阅 Amazon EC2 定价
。 -
步骤 2:为实例设置安全组
在此步骤中,在 Amazon EC2 控制台上,为连接到环境的实例设置 Amazon EC2 安全组。将其设置为允许通过端口 8080、8081 或 8082 传入 HTTP 请求。
注意
您无需通过端口 8080
、8081
或 8082
使用 HTTP 运行。如果您不这样做,将无法从 IDE 中预览运行的应用程序。有关更多信息,请参阅 预览运行的应用程序。如果在不同的协议或端口上运行,请在该步骤中替换为该协议或端口。
要提供额外的安全层,请为实例可使用的 VPC 中的子网设置网络访问控制列表 (ACL)。有关安全组和网络的更多信息 ACLs,请参阅以下内容:
-
Amazon VPC 用户指南中的安全
-
Amazon VPC 用户指南中的您的 VPC 安全组
-
亚马逊 VPC 用户指南 ACLs中的@@ 网络
-
在环境的 IDE 中,在菜单栏上,选择您的用户图标,然后选择 “管理 EC2 实例”。然后,跳到本过程的步骤 3。
-
如果在此过程中选择 “管理 EC2 实例” 或其他步骤返回错误,请使用您的管理员凭证登录 Amazon EC2 控制台 AWS 账户。然后按照以下说明进行操作。如果您无法执行此操作,请咨询您的 AWS 账户 管理员。
-
如果您尚未登录,请登录到 https://console.aws.amazon.com/
。 AWS Management Console -
打开亚马逊 EC2 控制台。为此,请在导航栏中选择 Services(服务)。然后选择 EC2。
-
在导航栏中,选择您的环境所在 AWS 区域 的位置。
-
如果显示EC2 控制面板,请选择正在运行的实例。否则,在服务导航窗格中展开 Instances(实例)(如果尚未展开),然后选择 Instances(实例)。
-
在实例列表中,选择 Instance ID(实例 ID)与您之前记下的实例 ID 相匹配的实例。
-
-
在实例的 Description(描述)选项卡中,选择 Security groups(安全组)旁边的安全组链接。
-
在显示安全组的情况下,查看 Inbound(入站)选项卡。如果有一个规则,其中 Type(类型)设置为 Custom Tcp Rule(自定义 TCP 规则),Port Range(端口范围)设置为 8080、8081 或 8082,请选择 Cancel(取消),然后向前跳到步骤 3:为实例设置子网。否则,请选择 Edit(编辑)。
-
在 Edit inbound rules(编辑入站规则)对话框中,选择 Add Rule(添加规则)。
-
对于 Type(类型),选择 Custom TCP Rule(自定义 TCP 规则)。
-
对于 Port Range(端口范围),输入
8080
、8081
或8082
。 -
对于 Source(源),请选择 Anywhere(任何位置)。
注意
通过对 Source(源)选择 Anywhere(任何位置),则允许来自任何 IP 地址的传入请求。要将其限定为特定 IP 地址,请选择 Custom(自定义),然后输入 IP 地址范围。或者,请选择 My IP(我的 IP)将请求限制为仅来自您的 IP 地址。
-
选择保存。
步骤 3:为实例设置子网
使用亚马逊 EC2 和亚马逊 VPC 控制台为连接到环境的亚马逊 EC2 实例设置子网。然后,允许通过端口 8080、8081 或 8082 传入 HTTP 请求。
注意
-
在 Amazon EC2 控制台的服务导航窗格中,展开实例(如果尚未扩展),然后选择实例。
-
在实例列表中,选择 Instance ID(实例 ID)与您之前记下的实例 ID 相匹配的实例。
-
在实例的 Description(描述) 选项卡中,记下 Subnet ID(子网 ID)值。子网 ID 采用以下格式:
subnet-1fab8aEX
。 -
打开 Amazon VPC 控制台。为此,请在 AWS 导航栏中选择 “服务”,然后选择 VPC。
对于此步骤,建议使用您的 AWS 账户中管理员的凭证登录到 Amazon VPC 控制台。如果您无法执行此操作,请咨询您的 AWS 账户 管理员。
-
如果显示 VPC Dashboard(VPC 控制面板),请选择 Subnet(子网)。否则,在服务导航窗格中,选择 Subnets(子网)。
-
在子网列表中,选择 Subnet ID(子网 ID)值与您之前记下的子网 ID 相匹配的子网。
-
在 Summary(摘要)选项卡上,选择 Network ACL(网络 ACL)旁边的网络 ACL 链接。
-
在网络列表中 ACLs,选择网络 ACL。(只有一个网络 ACL。)
-
查看网络 ACL 的 Inbound Rules(入站规则)选项卡。如果已有一个规则,其中 Type(类型)设置为 HTTP* (8080)、HTTP* (8081) 或 HTTP* (8082),请向前跳到 步骤 4:共享运行的应用程序 URL。否则,请选择 Edit(编辑)。
-
选择 Add another rule(添加其他规则)。
-
对于 Rule #(规则号),请输入该规则的编号(例如
200
)。 -
对于 Type(类型),选择 Custom TCP Rule(自定义 TCP 规则)。
-
对于 Port Range(端口范围),请键入
8080
、8081
或8082
。 -
对于 Source(源),请键入允许发送传入请求的 IP 地址范围。例如,要允许来自任何 IP 地址的传入请求,请输入
0.0.0.0/0
。 -
在将 Allow/Deny(允许/拒绝)设置为 ALLOW(允许) 的情况下,选择 Save(保存)。
步骤 4:共享运行的应用程序 URL
应用程序运行后,您可以通过提供应用程序的 URL 与其他人共享您的应用程序。为此,您需要之前提到的公有 IP 地址。要编写应用程序的完整 URL,请确保使用正确的协议启动应用程序的公有 IP 地址。接下来,如果您的应用程序端口不是它所用协议的默认端口,请添加端口号信息。以下是一个示例应用程序 URL:http://192.0.2.0:8080/index.html
通过端口 8080 使用 HTTP。
如果出现的 Web 浏览器标签页显示错误或空白,请执行无法显示在 IDE 以外运行的应用程序中的故障排除步骤。
注意
您的应用程序的公有 IP 地址可能会在应用程序的实例重启时发生变化。要禁止更改该 IP 地址,请分配弹性 IP 地址,然后将该地址分配给正在运行的实例。有关说明,请参阅 Amazon EC2 用户指南中的分配弹性 IP 地址和将弹性 IP 地址与正在运行的实例关联起来。分配弹性 IP 地址可能会 AWS 账户 导致您产生费用。有关更多信息,请参阅 Amazon EC2 定价
您无需使用 HTTP 通过端口 8080
、8081
或 8082
运行应用程序。不过,如果您不这样做,将无法从 IDE 中预览运行的应用程序。有关更多信息,请参阅 预览运行的应用程序。
例如,假设来自 VPN 的请求会阻止通过请求的协议或端口的流量。然后,那些访问您的应用程序 URL 的请求可能会失败。必须从允许通过请求的协议和端口传输流量的不同网络发出请求。有关更多信息,请与您的网络管理员联系。
建议不要与其他人共享 IDE 的应用程序预览标签页中的 URL。(此网址采用以下格式:https://12a34567b8cd9012345ef67abcd890e1.vfs.cloud9.us-east-2.amazonaws.com/
. 在这种格式中,12a34567b8cd9012345ef67abcd890e1
是 AWS Cloud9
分配给环境的 ID。 us-east-2
是环境 AWS 区域 的 ID。) 仅当环境的 IDE 处于打开状态并且应用程序正在同一个 Web 浏览器中运行时,此 URL 才有用。