故障排除 AWS Cloud9 - AWS Cloud9

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

故障排除 AWS Cloud9

使用以下信息来识别和解决问题 AWS Cloud9。

如果没有列出您的问题,或者您需要更多帮助,请参阅 AWS Cloud9 开发论坛。当您进入此论坛时,可能会要求您登录。您也可以直接联系我们

Installer(安装程序)

以下部分概述了与 AWS Cloud9 安装程序相关的故障排除问题。

AWS Cloud9 安装程序挂起或失败

问题:下载并运行 AWS Cloud9 安装程序时,会发生一个或多个错误,并且安装程序脚本不显示Done

原因: AWS Cloud9 安装程序遇到了一个或多个无法恢复的错误,因此失败了。

解决方案:有关更多信息,请参阅AWS Cloud9 安装程序故障排除。请参阅常见问题、可能原因及提供的建议解决方案。

AWS Cloud9 显示 “Package Cloud9 IDE 1" 后,安装程序无法完成

问题: AWS Cloud9 在创建 SSH 开发环境的过程中安装在您现有的 Amazon EC2 实例或您自己的服务器上。如果 AWS Cloud9 Installer 对话框中显示以下消息,则表示安装已暂停:“Package Cloud9 IDE 1 (程序包 Cloud9 IDE 1)”。如果您选择 Cancel (取消),则会显示以下消息:“Installation Failed (安装失败)”。当无法在客户的 SSH 主机上安装 AWS Cloud9 软件包时,就会发生此错误。

原因:SSH 主机要求您安装 Node.js。我们建议安装主机操作系统支持的最新版本的 Node.js。如果您的主机Node.js上有 AWS Cloud9 不支持的版本,则可能会出现安装错误。

推荐的解决方案:在 SSH 主机上安装 AWS Cloud9 支持的 Node.js 版本。

无法安装依赖项

问题: AWS Cloud9 需要互联网访问才能下载依赖项。

可能的原因:

  • 如果您的 AWS Cloud9 环境使用代理访问互联网,则 AWS Cloud9 需要代理详细信息才能安装依赖关系。如果您没有向提供代理详细信息 AWS Cloud9,则会出现此错误。

  • 另一个原因可能是您的环境不允许出站流量。

建议的解决方案:

  • 要向提供您的代理详细信息 AWS Cloud9,请将以下代码附加到您的环境~/.bashrc文件中:

    export http_proxy=[proxy url for http] export https_proxy=[proxy url for https] #Certificate Authority used by your proxy export NODE_EXTRA_CA_CERTS=[path_to_pem_certificate]

    例如,如果您的 HTTP 代理 URL 是 https://172.31.26.80:3128,而您的 HTTP 代理 URL 是 https://172.31.26.80:3129,则将以下行添加到您的 ~/.bashrc 文件中,并设将 NODE_EXTRA_CA_CERTS 设置为 PEM 格式的证书颁发机构文件的路径。有关此变量的更多信息,请参阅 https://nodejs.org/api/cli.html#node_extra_ca_certsfile

    export http_proxy=http://172.31.26.80:3128 export https_proxy=https://172.31.26.80:3129 export NODE_EXTRA_CA_CERTS=[path_to_pem_certificate]
  • 如果您使用的是非入口 Amazon EC2 实例,则必须确保为 Amazon S3 配置了 Amazon VPC 端点。有关更多信息,请参阅为 Amazon S3 配置 VPC 端点以下载依赖项

SSH 环境错误:“需要 Python 版本 3 才能安装 pty.js”

问题:打开 AWS Cloud9 SSH 开发环境后, AWS Cloud9 IDE 中的终端会显示一条以 “安装 pty.js 需要 Python 版本 3” 开头的消息。

原因:要按预期工作,SSH 环境需要安装 Python 版本 3。

解决方案:在环境中安装 Python 版本 3。要检查您的版本,请在您服务器的终端上运行命令 python --version。要在您的服务器上安装 Python 3,请参阅以下内容之一:

AWS Cloud9 环境

以下部分概述了与 AWS Cloud9 环境相关的故障排除问题。

环境创建错误:“我们无法创建 EC2 实例……”

问题:当您尝试创建 AWS Cloud9 开发环境时,会出现一条消息,上面写着 “在账户验证和激活期间,我们无法在您的账户中创建 EC2 实例”。

原因:当前 AWS 正在验证并激活您的 AWS 账户. 在激活完成之前(可能需要最多 24 小时),您无法创建此环境或其他环境。

解决方案:稍后重新尝试创建环境。如果您在 24 小时后仍收到此消息,请联系支持。除此之外,重要的是要知道,即使创建环境的尝试失败, AWS CloudFormation 也会在您的账户中创建相关堆栈。这些堆栈计入您账户的堆栈创建配额。为了避免耗尽堆栈创建配额,您可以安全地删除这些失败的堆栈。有关更多信息,请参阅 AWS CloudFormation 用户指南中的在 AWS CloudFormation 控制台上删除堆栈

环境创建错误:“未授权执行 sts:AssumeRole”

问题:尝试创建新环境时,会看到以下错误:“未授权执行 sts:”AssumeRole,并且环境未创建。

可能的原因:您的 AWS 账户中不存在 AWS Cloud9 服务相关角色。

推荐的解决方案:在中创建 AWS Cloud9 AWS 账户服务相关角色。您可以使用以下命令在 AWS Command Line Interface (AWS CLI)或 AWS CloudShell中进行这项操作。

aws iam create-service-linked-role --aws-service-name cloud9.amazonaws.com # For the AWS CLI. iam create-service-linked-role --aws-service-name cloud9.amazonaws.com # For the aws-shell.

如果您无法执行此操作,请咨询您的 AWS 账户 管理员。

运行此命令后,请尝试再次创建环境。

联合身份无法创建环境

问题:当您尝试使用 AWS 联合身份创建 AWS Cloud9 开发环境时,会显示访问错误消息,并且不会创建环境。

原因:: AWS Cloud9 使用服务相关角色。在首次使用 iam:CreateServiceLinkedRole 调用在账户中创建环境时,会创建服务相关角色。但联合身份用户无法调用 IAM API。有关更多信息,请参阅 AWS Security Token Service API 参考GetFederationToken中的。

解决方案:要求 AWS 账户 管理员在 IAM 控制台中 AWS Cloud9 或通过使用 AWS Command Line Interface (AWS CLI) 运行以下命令来创建服务相关角色:

aws iam create-service-linked-role --aws-service-name cloud9.amazonaws.com

或者这个带有 AWS-shell 的命令:

iam create-service-linked-role --aws-service-name cloud9.amazonaws.com

有关更多信息,请参阅 IAM 用户指南 中的使用服务相关角色

控制台错误:“用户无权对资源执行操作”

问题:当你尝试使用 AWS Cloud9 控制台创建或管理 AWS Cloud9 开发环境时,你会看到一个错误,其中包含类似于 “用户arn:aws:iam::123456789012:user/MyUser无权使用资源” cloud9:action 的短语arn:aws:cloud9:us-east-2:123456789012:environment:12a34567b8cd9012345ef67abcd890e1,其中:

  • arn:aws:iam::123456789012:user/MyUser 是请求用户的 Amazon Resource Name (ARN)。

  • action 是用户请求的操作的名称。

  • arn:aws:cloud9:us-east-2:123456789012:environment:12a34567b8cd9012345ef67abcd890e1 是用户请求用于运行操作的环境的 ARN。

原因:您登录 AWS Cloud9 控制台时使用的用户没有执行该操作的正确 AWS 访问权限。

解决方案:确保用户具有正确的 AWS 访问权限,然后再次尝试执行此操作。有关更多信息,请参阅下列内容:

无法连接到环境

问题:用户无法连接到环境,并且在连接阶段停滞不前。

原因:如果您更改文件的权限、从该~/ .ssh/authorized_keys文件中删除 AWS Cloud9 密钥或完全删除该文件,则可能会出现此问题。

解决方案:请勿删除此文件。如果您将其删除,则必须重新创建环境,并且可能需要将现有环境的 EBS 卷附加到新的 EC2 环境。这是为了找回丢失的数据。如果缺少权限,请确保文件具有 Read-Write 权限。这是为了允许 SSH 进程守护程序读取它。

无法打开环境

问题:尝试打开环境时,IDE 在超过五分钟的时间内都未显示。

可能的原因:

  • 登录 AWS Cloud9 控制台的 IAM 用户没有打开环境所需的 AWS 访问权限。

  • 如果环境与 AWS 云计算实例(例如,Amazon EC2 实例)关联,则可能出现以下情况:

    • 与该实例关联的 VPC 的设置不正确 AWS Cloud9。

    • 该实例正在状态之间转换,或者在尝试连接实例 AWS Cloud9 时无法进行自动状态检查。

  • 如果环境是 SSH 环境,则关联的云计算实例或您自己的服务器的设置不正确,无法 AWS Cloud9 允许对其进行访问。

建议的解决方案:

无法打开 AWS Cloud9 环境:“协作者目前无法访问此环境。Please wait until the removal of managed temporary credentials is complete, or contact the owner of this environment.”(协作者当前无法访问此环境。请等待托管式临时凭证删除完成,或联系此环境的拥有者。)

问题:如果不是环境所有者的人员将新的协作者添加到环境中,则 AWS 托管临时证书将被禁用。删除 ~/.aws/credentials 文件时将禁用凭证。~/.aws/credentials文件被删除时,新的协作者无法访问 AWS Cloud9 环境。

原因:在删除 AWS 托管式临时凭证期间,防止环境访问是一种安全措施。这允许环境拥有者确认只有受信任的协作者方可访问托管式凭证。如果满足协作者列表有效,则环境拥有者可以重新启用托管式凭证,以便共享。有关更多信息,请参阅 控制对 AWS 托管式临时凭证的访问

推荐的解决方案:等待~/.aws/credentials文件完全删除,然后再尝试打开 AWS Cloud9 环境。凭证到期的最长等待时间为 15 分钟。或者,请求环境拥有者重新启用或禁用托管式临时凭证。重新启用或禁用凭证后,协作者可以立即访问环境。通过将托管式凭证的状态切换为“ENABLED”(启用)或“DISABLED”(禁用),环境拥有者可确保凭证不会保持在中间状态。中间统计数据可以阻止协作者访问环境。

注意

假设环境所有者和合作者属于同一 AWS 账户,则协作者可以通过在控制台上的 Your environments(您的环境)页面中查看环境卡片,来确定要联系的环境拥有者。环境拥有者也在 Environment details(环境详细信息)页面中列出。

环境删除错误:“One or more environments failed to delete(一个或多个环境删除失败)”

问题:当您尝试在 AWS Cloud9 控制台中删除一个或多个环境时,会显示一条消息,上面写着 “一个或多个环境删除失败”,并且至少有一个环境未被删除。

可能的原因:删除一个或多个环境时 AWS CloudFormation 可能出现问题。 AWS Cloud9 依赖 AWS CloudFormation 于创建和删除环境。

推荐的解决方案: AWS CloudFormation 尝试使用删除每个未删除的环境。

  1. 打开 AWS CloudFormation 控制台,网址为 https://console.aws.amazon.com/cloudformation

  2. 在 AWS 导航栏上, AWS 区域 为环境选择。

  3. 在堆栈列表中,选择堆栈名称包含未删除的环境名称状态为 DELETE_FAILED 的条目。 AWS CloudFormation 例如,如果环境名称为my-demo-environment,则选择以名称 aws-cloud 9-开头的堆栈。my-demo-environment(选择环境名称旁的复选框或选项,而不是环境名称本身。)

  4. 选择 Actions (操作)、Delete Stack (删除堆栈)

  5. 在系统提示时,选择 Yes, Delete (是,删除)

删除堆栈的过程可能需要几分钟时间。

如果堆栈从列表中消失,则环境现已删除。

如果在几分钟后,堆栈仍显示为 DELETE_FAILED,则环境仍未删除。您可以尝试手动删除各个失败的堆栈资源。

注意

手动删除失败堆栈的资源并不能将堆栈本身从您的资源中移除 AWS 账户。

要手动删除这些资源,请执行以下操作。在 AWS CloudFormation 控制台中,选择失败的堆栈,然后选择资源部分。访问此列表中 AWS 每个资源的控制台,然后使用该控制台删除该资源。

在 AWS Cloud9 IDE 中更改环境的超时时间

问题:用户想要更新 Amazon EC2 环境的超时时间。

原因:默认超时时间为 30 分钟。对于某些用户来说,这个时间可能太短了。

建议的解决方案:

  1. 打开要配置的环境。

  2. AWS Cloud9 IDE 中,在菜单栏上依次选择 AWS Cloud9首选项

  3. 首选项窗口中,滚动至 Amazon EC2 实例部分。

  4. 从可用列表中选择超时值并更新。

由于 AWS Cloud9 环境没有足够的磁盘空间,因此在 AWS Toolkit 中本地运行 SAM 应用程序时出错

问题:当您使用 AWS 工具包为 SAM 模板定义的应用程序运行 AWS SAM CLI 命令时,会出现错误。

可能的原因:使用 AWS Toolkit 在本地运行和调试无服务器应用程序时,会 AWS SAM 使用Docker镜像。这些映像提供一个运行时环境和构建工具,它们可以模拟您计划部署到的 Lambda 环境。

但是,如果您的环境缺乏足够的磁盘空间,则无法构建提供这些功能的 Docker 映像,并且您的本地 SAM 应用程序将无法运行。如果发生这种情况,您可能会在 Output(输出)选项卡中收到与以下内容类似的错误。

Error: Could not find amazon/aws-sam-cli-emulation-image-python3.7:rapid-1.18.1 image locally and failed to pull it from docker.

此错误与使用 Python 运行时构建的 SAM 应用程序有关。根据您为应用程序选择的运行时,您收到的消息可能略有不同。

建议的解决方案:释放环境中的磁盘空间,以构建 Docker 映像。通过在 IDE 的终端中运行以下命令来删除所有未使用的 Docker 映像。

docker image prune -a

如果由于磁盘空间限制而反复出现 SAM CLI 命令问题,请切换到使用不同实例类型的开发环境。

回到顶部

无法使用早期版本的 Microsoft Edge 浏览器加载 IDE

问题:尝试使用 Microsoft Edge Web 浏览器加载 AWS Cloud9 IDE 时返回HTTP403: FORBIDDEN错误。

可能的原因: AWS Cloud9 IDE 不支持某些较早版本的Microsoft Edge。

建议的解决方案:要更新浏览器,请选择 Microsoft Edge 工具栏中的省略号(...)按钮。从菜单中选择 Settings(设置),然后选择 About Microsoft Edge(关于 Microsoft Edge)。如果需要更新,则会自动下载并安装。

回到顶部

无法在 AWS Cloud9 IDE 文件资源管理器中创建子文件夹结构 /home/ec2-user/environment/home/ec2-user/environment

问题:在 AWS Cloud9 IDE 文件资源管理器中创建子文件夹结构 /home/ec2-user/environment/home/ec2-user/environm ent 时,会收到一条错误消息,指出无法打开此目录。

可能的原因:目前无法使用 IDE 的文件系统在同名文件夹中创建子文件夹结构 /home/ec2-user/ environment。 AWS Cloud9 您将无法从 AWS Cloud9 IDE 文件资源管理器访问此目录中的任何文件,但可以使用命令行访问它们。此问题仅影响文件路径 /home/ec2-user/environment/home/ec2-user/environment/test/home/ec2-user/environment/home/ec2-user/environment/test 等文件路径应该有效。这是一个已知问题,仅影响 AWS Cloud9 IDE 文件资源管理器。

建议的解决方案:使用不同的文件名和结构。

回到顶部

无法在 IDE 的文件资源管理器中为其创建子文件夹结构 /projects/ projects。 AWS Cloud9 CodeCatalyst

问题:在 AWS Cloud9 IDE 文件资源管理器中为其创建子文件夹结构 /projec ts/projects 时 CodeCatalyst,会收到一条错误消息,指出无法打开此目录。

可能的原因:目前无法使用 AWS Cloud9 IDE 的文件资源管理器在同名文件夹中创建子文件夹结构 /proj ects。 CodeCatalyst您将无法从 AWS Cloud9 IDE 文件资源管理器访问此目录中的任何文件,但可以使用命令行访问它们。此问题仅影响文件路径 /projects/projects/test/projects/projects/test 等此类文件路径应有效。这是一个已知问题,仅影响的 AWS Cloud9 IDE 文件资源管理器 CodeCatalyst。

建议的解决方案:使用不同的文件名和结构。

回到顶部

由于 tmux 会话错误,无法与 AWS Cloud9 中的终端窗口交互

问题:当您尝试在中启动新的终端窗口时 AWS Cloud9,预期的命令行界面不可用。没有命令提示符,您无法输入文本。将返回 tmux: need UTF-8 locale (LC_CTYPE)invalid LC_ALL, LC_CTYPE or LANG 等错误消息。

可能的原因:终端无响应可能是由 tmux 错误引起的。 AWS Cloud9 使用 tmux 实用程序。这样,即使在页面重新加载或重新连接到开发环境时,终端中显示的信息也会保持不变。

tmux 会话中,终端窗口中显示的内容由客户端处理。客户端与可以管理多个会话的服务器通信。服务器和客户端通过位于 tmp 文件夹中的套接字进行通信。如果您的开发环境中缺少该 tmp 文件夹或对其应用了过于严格的权限,则 tmux 会话将无法运行。如果发生这种情况,IDE 中的终端窗口将变得没有响应。

建议的解决方案:如果 tmux 错误阻止您与终端窗口进行交互,请使用另一种方法来创建具有正确权限的 tmp 文件夹。这样一来就可以运行tmux 会话。一种解决方案是导出 .bash_profile 中或 .bashrc 文件中的 LC_CTYPE。另一个推荐的解决方案是使用 AWS Systems Manager 来设置主机管理配置。这允许通过 Amazon EC2 控制台访问相关实例。

设置主机管理

  1. 首先,在 AWS Cloud9 控制台中,找到您的环境实例的名称。为此,您可以选择 Your environments(您的环境)页面中的相关面板并选择 View details(查看详细信息)。在 Environment details(环境详细信息)页面上,选择 Go to Instance(转到实例)。在 Amazon EC2 控制台中,确认需要访问的实例的名称。

  2. 现在进入 AWS Systems Manager 控制台,在导航窗格中选择 “快速设置”。

  3. Quick Setup(快速设置)页面上,选择 Create(创建)。

  4. 对于 Configuration types(配置类型),请转到 Host Management(主机管理),然后选择 Create(创建)。

  5. 对于 Customize Host Management configuration options(自定义主机管理配置选项),在 Targets(目标)部分中,选择 Manual(手动)。

  6. 选择要访问的 EC2 实例,然后选择 Create(创建)。

连接到实例并运行命令

注意

以下步骤适用于新的 EC2 控制台。

  1. 在 Amazon EC2 控制台的导航窗格中,选择 Instances(实例),然后选择要连接的实例。

  2. 选择连接

    如果 Connect(连接)未激活,您可能需要先启动实例。

  3. Connect to your instance(连接到您的实例)窗格中,对于 Connection method(连接方法),请选择 Session Manager(会话管理器),然后选择 Connect(连接)。

  4. 在出现的终端会话窗口中,输入以下命令。这些命令会创建具有正确权限的 tmp 文件夹,以便 tmux 套接字可用。

    sudo mkdir /tmp sudo chmod 777 /tmp sudo rmdir /tmp/tmux-*

回到顶部

Amazon EC2

以下部分概述了与 Amazon EC2 相关的故障排除问题。

Amazon EC2 实例未自动更新

问题:最近的系统更新不会自动应用于连接到 AWS Cloud9 开发环境的 Amazon EC2 实例。

原因:自动应用最近的系统更新可能导致您的代码或 Amazon EC2 实例在您事先不知情或未经您批准的情况下以非预期方式运行。

建议的解决方案:

按照 Amazon EC2 用户指南中更新实例软件中的说明定期对 Amazon EC2 实例进行系统更新。

要在实例上运行命令,可以在 AWS Cloud9 IDE 中使用与实例连接的环境中的终端会话。

或者,您可以使用 SSH 远程访问实用程序(如 ssh 或 PuTTY)连接到该实例。要执行此操作,请在您的本地计算机中,使用诸如 ssh-keygen 或 PuTTYgen 之类的 SSH 密钥对创建实用程序。使用与实例连接的环境中的 AWS Cloud9 IDE 将生成的公钥存储在实例上。然后,使用 SSH 远程访问实用程序以及生成的私有密钥访问该实例。有关更多信息,请参阅您的实用程序的文档。

AWS CLI 或者 AWS-shell 错误:在 EC2 环境中 “请求中包含的安全令牌无效”

问题:当您尝试使用 AWS Command Line Interface (AWS CLI) 或 AWS-shell 在 AWS Cloud9 IDE 中为 EC2 环境运行命令时,会显示一条错误:“请求中包含的安全令牌无效。”

原因:如果您启用了 AWS 托管式临时凭证并且发生了以下任一情况,可能会导致安全令牌无效:

  • 您试图运行 AWS 托管临时证书不允许的命令。有关允许的命令列表,请参阅AWS 托管临时证书支持的操作

  • AWS 托管的临时证书会在 15 分钟后自动过期。

  • 共享环境的 AWS 托管临时证书已停用,因为环境所有者之外的其他人添加了新成员。

建议的解决方案:

  • 仅运行 AWS 托管临时证书允许的命令。如果您需要运行 AWS 托管临时证书不允许的命令,请在环境中使用一组永久凭证配置 AWS CLI 或 AWS-shell。这样可消除此限制。有关说明,请参阅在环境中创建和存储永久访问凭证

  • 对于已停用或过期的证书,请确保环境所有者打开环境,以便 AWS Cloud9 可以刷新环境中的临时证书。有关更多信息,请参阅 控制对 AWS 托管式临时凭证的访问

无法连接到 EC2 环境,因为 VPC 的 IP 地址被 Docker 使用

问题:对于 EC2 环境,如果您将 EC2 实例启动到使用 IPv4 无类别域间路由 (CIDR) 块 172.17.0.0/16 的 Amazon VPC 中,则在您尝试打开该环境时连接可能会停止。

原因:Docker 使用一种称为桥接网络的链路层设备,该设备使连接到同一桥接网络的容器能够进行通信。 AWS Cloud9 创建使用默认桥进行容器通信的容器。默认网桥通常使用 172.17.0.0/16 子网进行容器联网。

如果环境实例的 VPC 子网使用的地址范围与 Docker 使用的相同,则可能会出现 IP 地址冲突。因此,当 AWS Cloud9 尝试连接到其实例时,该连接由网关路由表路由到 Docker 网桥。这样可以 AWS Cloud9 防止连接到支持开发环境的 EC2 实例。

建议的解决方案:要解决由 Amazon VPC 和 Docker 使用相同 IPv4 CIDR 地址块导致的 IP 地址冲突,请为支持您的 EC2 环境的实例配置一个新的 VPC。为这个新的 VPC,配置一个不同于 172.17.0.0/16 的 CIDR 块。(您不能更改现有 VPC 或子网的 IP 地址范围。)

有关更多配置信息,请参阅 Amazon VPC 用户指南 中的 VPC 和子网大小调整

无法在 AWS Cloud9 IDE 文件资源管理器中创建子文件夹结构 /home/ec2-user/environment/home/ec2-user/environment

问题:在 AWS Cloud9 IDE 文件资源管理器中创建子文件夹结构 /home/ec2-user/environment/home/ec2-user/environm ent 时,会收到一条错误消息,指出无法打开此目录。

可能的原因:目前无法使用 IDE 的文件系统在同名文件夹中创建子文件夹结构 /home/ec2-user/ environment。 AWS Cloud9 您将无法从 AWS Cloud9 IDE 文件资源管理器访问此目录中的任何文件,但可以使用命令行访问它们。此问题仅影响文件路径 /home/ec2-user/environment/home/ec2-user/environment/test/home/ec2-user/environment/home/ec2-user/environment/test 等文件路径应该有效。这是一个已知问题,仅影响 AWS Cloud9 IDE 文件资源管理器。

建议的解决方案:使用不同的文件名和结构。

当 AWS License Manager 许可证配置与 Amazon EC2 实例关联时,无法 AWS Cloud9 从控制台启动

问题:当您尝试从控制台启动 AWS Cloud9 EC2 环境时,会返回unable to access your environment一条错误消息。

可能的原因: AWS License Manager 简化了整个软件供应商许可证的管理。 AWS Cloud设置 License Manager 时,您可以创建许可证配置,它们是基于企业协议条款的许可规则集。这些许可配置可以附加到机制,例如 Amazon 系统映像 (AMI) 或 AWS CloudFormation。您可以使用其中一种机制启动 EC2 实例。

f AWSCloud9ServiceRolePolicyor AWSServiceRoleForAWSCloud 9 服务相关角色 (SLR) 的旧版本目前不包括license-configuration资源条件。因此, AWS Cloud9 不允许启动和停止其实例。因此, AWS Cloud9 被拒绝访问其 Amazon EC2 实例,并返回错误。

推荐的解决方案:如果您无法访问现有 AWS Cloud9 环境和使用 License Manager,请将旧的AWSCloud9ServiceRolePolicy服务相关角色替换为在license-configuration适用于实例时明确允许 EC2 操作的 SLR 版本。只需删除旧角色即可替换旧角色。之后将自动创建更新后的角色。

无法在 EC2 环境中运行某些命令或脚本

问题:打开 AWS Cloud9 EC2 开发环境后,您将无法安装某些类型的软件包、无法运行yum或之类的命令apt,也无法运行包含通常适用于其他 Linux 操作系统的命令的脚本。

原因: AWS Cloud9 用于 EC2 环境的亚马逊 EC2 实例依赖于亚马逊 Linux(基于红帽企业 Linux (RHEL))或 Ubuntu 服务器。

解决方案:如果您在用于 EC2 环境的 IDE 中安装或管理软件包或运行命令或脚本,根据该环境的实例,请确保它们与 RHEL(对于 Amazon Linux)或 Ubuntu Server 兼容。

使用创建 EC2 环境时报告错误消息 “账户中 AWSCloud9SSMInstanceProfile 不存在实例配置文件” AWS CloudFormation

问题:使用 AWS::Cloud9::EnvironmentEC2 AWS CloudFormation 资源创建 EC2 环境时,用户会收到一条错误消息,提示账户中 AWSCloud9SSMInstanceProfile不存在实例配置文件。

原因:在创建非入口 EC2 环境时,您必须创建服务角色 AWSCloud9SSMAccessRole 和实例配置文件 AWSCloud9SSMInstanceProfile。这些 IAM 资源使得 Systems Manager 能够对支持您的开发环境的 EC2 实例进行管理。

如果您使用控制台创建非入口环境,AWSCloud9SSMAccessRoleAWSCloud9SSMInstanceProfile 会自动创建。但是,在使用 AWS CloudFormation 或 AWS CLI 创建您的第一个无入口环境时,必须手动创建这些 IAM 资源。

推荐的解决方案:有关编辑 AWS CloudFormation 模板和更新 IAM 权限的信息,请参阅 使用 AWS CloudFormation 创建非入口 EC2 环境

使用 AWS CloudFormation创建 EC2 环境时,报告错误消息“未授权对资源执行 perform: ssm:StartSession

问题:使用 AWS::Cloud9::EnvironmentEC2 AWS CloudFormation 资源创建 EC2 环境时,用户会收到AccessDeniedException并被告知他们 “无权ssm:StartSession在资源上执行:”。

原因:用户缺乏调用 StartSession API 的权限,该 API 是将 Systems Manager 用于非入口实例的 EC2 环境配置的一部分。

推荐的解决方案:有关编辑 AWS CloudFormation 模板和更新 IAM 权限的信息,请参阅使用 AWS CloudFormation 创建非入口 EC2 环境

使用 AWS CLI创建 EC2 环境时,报告错误消息“no authorization to perform: on resource: instance profile”(未授权对资源执行 iam:GetInstanceProfile:实例配置文件 AWSCloud9SSMInstanceProfile

问题:使用创建 EC2 环境时,用户会收到AccessDeniedException并被告知其 AWS Cloud9 环境无权 “GetInstanceProfile 对资源:实例配置文件执行 iam:” AWSCloud9SSMInstanceProfileAWS CLI

原因:对于使用 Systems Manager 进行无入口实例的 EC2 环境, AWS Cloud9 缺少调用配置所需的 StartSession API 的权限。

推荐的解决方案:有关AWSCloud9SSMInstanceProfile向您的 AWS Cloud9 环境添加所需AWSCloud9SSMAccessRole服务角色的信息,请参阅使用 AWS CLI 管理 Systems Manager 的实例配置文件

将默认加密应用于 Amazon EBS 卷时,无法创建环境

问题:尝试创建 Amazon EC2 环境时会返回 Failed to create environments. The development environment '[environment-ID]' failed to create 错误。

可能的原因:如果您的 AWS Cloud9 IDE 使用默认加密的 Amazon EBS 卷,则 AWS Identity and Access Management 服务相关角色 AWS Cloud9 需要访问这些 EBS 卷 AWS KMS keys 的。如果未提供访问权限, AWS Cloud9 IDE 可能无法启动,并且可能很难调试问题。

推荐的解决方案:要提供访问权限,请将、的服务相关角色添加到您的 Amazon EBS 卷使用的客户托管密钥中。 AWS Cloud9AWSServiceRoleForAWSCloud9

有关此任务的更多信息,请参阅AWS 规范指导模式中的创建使用 Amazon EBS 卷和默认加密的 Amazon EBS 卷。 AWS Cloud9

EC2-Classic 账户的 VPC 错误“Unable to access your environment (无法访问您的环境)”

问题: EC2-Classic 是在 Amazon EC2 的初始版本中引入的。如果您使用在 2013 年 12 月 4 日之前设置的,那么如果您在创建 AWS Cloud9 EC2 开发环境时未配置 Amazon VPC 和子网,则可能会发生此错误。 AWS 账户

如果您接受原定设置 VPC 设置,则 Amazon EC2 实例将启动到 EC2-Classic 网络中。该实例不会启动到原定设置 VPC 的子网中。当创建环境失败时,将显示以下消息:

Environment Error (环境错误)

Unable to access your environment (无法访问您的环境)

The environment creation failed with the error: The following resource(s) failed to create: [Instance]. . Rollback requested by user..(环境创建失败,错误为: 无法创建以下资源: [Instance]. . 用户已请求回滚..)

您可以确认错误是因 EC2 实例未位于默认 VPC 中导致的。 AWS CloudFormation 用于查看开发环境的堆栈事件历史记录。

  1. 打开控制 AWS CloudFormation 台。有关更多信息,请参阅登录到 AWS CloudFormation 本地控制台。

  2. 在 AWS CloudFormation 控制台中,选择 Stacks

  3. Stacks (堆栈) 页面上,选择创建失败的开发环境的名称。

  4. Stack details(堆栈详细信息)页面上,选择 Events(事件)选项卡并检查以下条目:

    Status: CREATE_FAILED (状态: CREATE_FAILED)

    状态原因:只有启动 VPC 时才支持该 AssociatePublicIpAddress 参数。[...]

原因: AWS Cloud9 开发环境必须与符合特定 VPC 要求的 Amazon VPC 相关联。对于启用了 EC2-Classic 的账户,在创建 EC2 环境时接受默认网络设置意味着所需的 EC2 实例未在 VPC 中启动。相反,此实例将在 EC2-Classic 网络中启动。

建议的解决方案:对于 EC2-Classic 账户,您必须在创建 EC2 环境时选择 VPC 和子网。在 Configure settings (配置设置) 页面上的 Network settings (advanced) (网络设置(高级)) 部分中,选择可以在其中启动 EC2 实例的 VPC 和子网。

其他 AWS 服务

以下部分概述了与其他 AWS 服务相关的故障排除问题。

无法在 IDE 的文件资源管理器中为其创建子文件夹结构 /projects/ projects。 AWS Cloud9 CodeCatalyst

问题:在 AWS Cloud9 IDE 文件资源管理器中为其创建子文件夹结构 /projec ts/projects 时 CodeCatalyst,会收到一条错误消息,指出无法打开此目录。

可能的原因:目前无法使用 AWS Cloud9 IDE 的文件资源管理器在同名文件夹中创建子文件夹结构 /proj ects。 CodeCatalyst您将无法从 AWS Cloud9 IDE 文件资源管理器访问此目录中的任何文件,但可以使用命令行访问它们。此问题仅影响文件路径 /projects/projects/test/projects/projects/test 等此类文件路径应有效。这是一个已知问题,仅影响的 AWS Cloud9 IDE 文件资源管理器 CodeCatalyst。

建议的解决方案:使用不同的文件名和结构。

无法显示在 IDE 以外运行的应用程序

问题:当您或其他用户尝试在 IDE 以外的 Web 浏览器选项卡中显示正在运行的应用程序,该 Web 浏览器选项卡会显示错误或空白。

可能的原因:

  • 应用程序未在 IDE 中运行。

  • 应用程序正使用 IP 127.0.0.1localhost 运行。

  • 该应用程序在 AWS Cloud9 EC2 开发环境中运行。此外,一个或多个与相应 Amazon EC2 实例关联的安全组不允许通过应用程序需要使用的协议、端口或 IP 地址传输入站流量。

  • 该应用程序在 AWS 云计算实例(例如,Amazon EC2 实例)的 AWS Cloud9 SSH 开发环境中运行。此外,与相应实例关联的虚拟私有云 (VPC) 中子网的网络 ACL 不允许通过应用程序需要使用的协议、端口或 IP 地址传输入站流量。

  • URL 不正确。

  • 正在请求应用程序预览标签页中的 URL,而不是实例的公有 IP 地址。

  • 您正在尝试转到包含 IP 127.0.0.1localhost 的地址。这些 IP 将尝试访问您的本地计算机上的资源,而非环境中的资源。

  • 该实例的公有 IP 地址已更改。

  • Web 请求源自 virtual private network (VPN),该网络阻止通过应用程序需要使用的协议、端口或 IP 地址传输流量。

  • 该应用程序正在 SSH 环境中运行。但是,您的服务器或关联的网络不允许通过应用程序需要使用的协议、端口或 IP 地址传输流量。

建议的解决方案:

  • 确保此应用程序正在 IDE 中运行。

  • 确保应用程序未使用 IP 127.0.0.1localhost 运行。有关 Node.js 和 Python 中的示例,请参阅运行应用程序

  • 假设应用程序在 AWS 云计算实例(例如,Amazon EC2 实例)上运行。请确保与相应实例关联的所有安全组都允许通过应用程序需要使用的协议、端口和 IP 地址传输入站流量。有关说明,请参阅通过互联网共享正在运行的应用程序中的 步骤 2:为实例设置安全组。要了解更多信息,请参阅 Amazon VPC 用户指南中的您的 VPC 的安全组

  • 假设应用程序在 AWS 云计算实例上运行。此外,与相应实例关联的 VPC 中的子网存在网络 ACL。请确保网络 ACL 允许通过应用程序需要使用的协议、端口和 IP 地址传输入站流量。有关说明,请参阅通过互联网共享正在运行的应用程序中的 步骤 3:为实例设置子网。有关信息,请参阅 Amazon VPC 用户指南 中的网络 ACL

  • 确保请求 URL 是正确的,包括协议和端口 (如果必须指定)。有关更多信息,请参阅通过互联网共享运行的应用程序中的 步骤 4:共享运行的应用程序 URL

  • 我们不建议请求格式为https://12a34567b8cd9012345ef67abcd890e1.vfs.cloud9.us-east-2.amazonaws.com/(其中12a34567b8cd9012345ef67abcd890e1是 AWS Cloud9 分配给环境的 ID,us-east-2是环境的 AWS 区域 ID)的 URL。仅当环境的 IDE 处于打开状态并且应用程序正在同一个 Web 浏览器中运行时,此 URL 才有用。

  • 假设您正在尝试转到包含 IP 127.0.0.1localhost 的地址。尝试转到正在运行的应用程序的正确非本地地址。有关更多信息,请参阅 通过互联网共享运行的应用程序

  • 假设应用程序在 AWS 云计算实例上运行。确定该实例的公有 IP 地址是否已更改。该实例的公有 IP 地址可能在实例重新启动时随时更改。要防止此 IP 地址发生更改,您可以分配弹性 IP 地址并将其分配给正在运行的实例。有关更多信息,请参阅通过互联网共享运行的应用程序中的 步骤 4:共享运行的应用程序 URL

  • 如果 Web 请求源自 VPN,请确保 VPN 允许通过应用程序需要使用的协议、端口和 IP 地址传输流量。如果您无法更改您的 VPN,请联系您的网络管理员。或者,从其他网络发出 Web 请求(如果可能)。

  • 假设应用程序在您自己的服务器的 SSH 环境中运行。确保您的服务器和关联的网络允许通过应用程序需要使用的协议、端口和 IP 地址传输流量。如果您无法更改您的服务器或关联的网络,请联系您的服务器或网络管理员。

  • 尝试通过运行 curl 命令并在后面跟随 URL,从环境中的终端运行应用程序。如果此命令显示错误消息,则可能存在与之无关的其他问题 AWS Cloud9。

运行 AWS Toolkit 时出错:“您的环境已用完索引节点,请增加'fs.inotify.max_user_watches'限制。”

问题: AWS Toolkit 使用的文件观察器实用程序已接近其当前可监视的文件限制或限额。

原因: AWS Toolkit 使用文件观察器实用程序来监视文件和目录的更改。当该实用程序接近其可监视文件的当前配额时,会出现一条警告消息。

建议的解决方案:要增加文件监视器可处理的最大文件数,请执行以下操作:

  1. 要开始一个终端会话,请在菜单栏上依次选择 Window(窗口)New Terminal(新建终端)

  2. 输入以下 命令。

    sudo bash -c 'echo "fs.inotify.max_user_watches=524288" >> /etc/sysctl.conf' && sudo sysctl -p

Lambda 本地函数运行错误:无法安装 SAM Local

问题:尝试在 AWS Cloud9 IDE 中运行 AWS Lambda 函数的本地版本后,会显示一个对话框。对话框显示在安装 SAM Local 时遇到问题。 AWS Cloud9 AWS Cloud9 需要 SAM Local 才能在 IDE 中运行本地版本的 AWS Lambda 函数。除非安装 SAM Local,否则无法在 IDE 中运行 Lambda 函数的本地版本。

原因:在环境中的预期路径上 AWS Cloud9 找不到 SAM Local,即~/.c9/bin/sam。这是因为尚未安装 SAM Local;或者虽然已安装了该程序,但 AWS Cloud9 无法在该位置找到程序。

推荐的解决方案:您可以等待 AWS Cloud9 尝试完成 SAM Local 的安装,也可以自己安装。

要查看尝试安装 SAM Local 的效果如何 AWS Cloud9 ,请在菜单栏上选择 “窗口”、“安装程序”。

要自己安装 SAM Local,请按照《AWS Serverless Application Model 开发人员指南》中在 Linux 上安装 AWS SAM CLI 中的说明进行操作。

AWS Control Tower 尝试使用以下方法创建 Amazon EC2 环境时出错 AWS Cloud9:“创建环境失败,错误为:以下挂钩失败:[:: GuardControlTower:: Hook]。”

问题: AWS Control Tower 主动控制 CT.EC2.P AWS Cloud9 R. 8 存在兼容性问题。如果启用此控件,则无法在 AWS Cloud9中创建 EC2 环境。

原因:期 AWS Control Tower 望AssociatePublicIpAddress参数出现在 AWS CloudFormation 模板中。此时无法添加此参数。

推荐的解决方案:从控制 AWS Control Tower 台禁用控制 CT.EC2.PR.8,然后在中重新创建环境。 AWS Cloud9

将默认加密应用于 Amazon EBS 卷时,无法创建环境

问题:尝试创建 Amazon EC2 环境时会返回 Failed to create environments. The development environment '[environment-ID]' failed to create 错误。

可能的原因:如果您的 AWS Cloud9 IDE 使用默认加密的 Amazon EBS 卷,则 AWS Identity and Access Management 服务相关角色 AWS Cloud9 需要访问这些 EBS 卷 AWS KMS keys 的。如果未提供访问权限, AWS Cloud9 IDE 可能无法启动,并且可能很难调试问题。

推荐的解决方案:要提供访问权限,请将、的服务相关角色添加到您的 Amazon EBS 卷使用的客户托管密钥中。 AWS Cloud9AWSServiceRoleForAWSCloud9

有关此任务的更多信息,请参阅AWS 规范指导模式中的创建使用 Amazon EBS 卷和默认加密的 Amazon EBS 卷。 AWS Cloud9

回到顶部

当 AWS License Manager 许可证配置与 Amazon EC2 实例关联时,无法 AWS Cloud9 从控制台启动

问题:当您尝试从控制台启动 AWS Cloud9 EC2 环境时,会返回unable to access your environment一条错误消息。

可能的原因: AWS License Manager 简化了整个软件供应商许可证的管理。 AWS Cloud设置 License Manager 时,您可以创建许可证配置,它们是基于企业协议条款的许可规则集。这些许可配置可以附加到机制,例如 Amazon 系统映像 (AMI) 或 AWS CloudFormation。您可以使用其中一种机制启动 EC2 实例。

f AWSCloud9ServiceRolePolicyor AWSServiceRoleForAWSCloud 9 服务相关角色 (SLR) 的旧版本目前不包括license-configuration资源条件。因此, AWS Cloud9 不允许启动和停止其实例。因此, AWS Cloud9 被拒绝访问其 Amazon EC2 实例,并返回错误。

推荐的解决方案:如果您无法访问现有 AWS Cloud9 环境和使用 License Manager,请将旧的AWSCloud9ServiceRolePolicy服务相关角色替换为在license-configuration适用于实例时明确允许 EC2 操作的 SLR 版本。只需删除旧角色即可替换旧角色。之后将自动创建更新后的角色。

回到顶部

应用程序预览

以下部分概述了与应用程序预览相关的故障排除问题。

重新加载环境之后,必须刷新应用程序预览

问题:重新加载显示应用程序预览选项卡的环境之后,该选项卡未显示应用程序预览。

原因:有时,用户编写的代码可能会运行无限循环。或者他们的代码会占用太多的内存,以至于应用程序预览运行时 AWS Cloud9 IDE 可能会暂停或停止。为了防止这种情况 AWS Cloud9 发生,在重新加载环境时不要重新加载应用程序预览选项卡。

解决方案:在重新加载显示应用程序预览选项卡的环境之后,要显示应用程序预览,请选择该选项卡上的 Click to load the page(单击以加载页面)按钮。

应用程序预览或文件预览通知:“Third-party cookies disabled(第三方 cookie 已禁用)”

问题:当您尝试预览应用程序文件时,会显示一条通知,并显示以下消息:“预览功能已禁用,因为您的浏览器禁用了第三方 cookie。”

原因:打开 AWS Cloud9 IDE 不需要第三方 Cookie。但是,您必须启用第三方 Cookie 才能使用应用程序预览或文件预览功能。

解决方案:在 Web 浏览器中启用第三方 cookie,重新加载 IDE,然后再次尝试打开预览。

如果您的 Web 浏览器允许这种精细度,则只能为 AWS Cloud9启用第三方 Cookie。为此,请指定以下域,具体取决于您要在其中使用 AWS Cloud9的受支持的 AWS 区域 。

AWS 区域

美国东部(弗吉尼亚州北部)

*.vfs.cloud9.us-east-1.amazonaws.com

vfs.cloud9.us-east-1.amazonaws.com

美国东部(俄亥俄州)

*.vfs.cloud9.us-east-2.amazonaws.com

vfs.cloud9.us-east-2.amazonaws.com

美国西部(加利福尼亚北部)

*.vfs.cloud9.us-west-1.amazonaws.com

vfs.cloud9.us-west-1.amazonaws.com

美国西部(俄勒冈州)

*.vfs.cloud9.us-west-2.amazonaws.com

vfs.cloud9.us-west-2.amazonaws.com

非洲(开普敦)

*.vfs.cloud9.af-south-1.amazonaws.com

vfs.cloud9.af-south-1.amazonaws.com

亚太地区(香港)

*.vfs.cloud9.ap-east-1.amazonaws.com

vfs.cloud9.ap-east-1.amazonaws.com

Asia Pacific (Mumbai)

*.vfs.cloud9.ap-south-1.amazonaws.com

vfs.cloud9.ap-south-1.amazonaws.com

亚太地区(大阪)

*.vfs.cloud9.ap-northeast-3.amazonaws.com

vfs.cloud9.ap-northeast-3.amazonaws.com

亚太地区(首尔)

*.vfs.cloud9.ap-northeast-2.amazonaws.com

vfs.cloud9.ap-northeast-2.amazonaws.com

亚太地区(新加坡)

*.vfs.cloud9.ap-southeast-1.amazonaws.com

vfs.cloud9.ap-southeast-1.amazonaws.com

亚太地区(悉尼)

*.vfs.cloud9.ap-southeast-2.amazonaws.com

vfs.cloud9.ap-southeast-2.amazonaws.com

亚太地区(东京)

*.vfs.cloud9.ap-northeast-1.amazonaws.com

vfs.cloud9.ap-northeast-1.amazonaws.com

加拿大(中部)

*.vfs.cloud9.ca-central-1.amazonaws.com

vfs.cloud9.ca-central-1.amazonaws.com

欧洲地区(法兰克福)

*.vfs.cloud9.eu-central-1.amazonaws.com

vfs.cloud9.eu-central-1.amazonaws.com

欧洲地区(爱尔兰)

*.vfs.cloud9.eu-west-1.amazonaws.com

vfs.cloud9.eu-west-1.amazonaws.com

欧洲地区(伦敦)

*.vfs.cloud9.eu-west-2.amazonaws.com

vfs.cloud9.eu-west-2.amazonaws.com

欧洲地区(米兰)

*.vfs.cloud9.eu-south-1.amazonaws.com

vfs.cloud9.eu-south-1.amazonaws.com

欧洲地区(巴黎)

*.vfs.cloud9.eu-west-3.amazonaws.com

vfs.cloud9.eu-west-3.amazonaws.com

欧洲地区(斯德哥尔摩)

*.vfs.cloud9.eu-north-1.amazonaws.com

vfs.cloud9.eu-north-1.amazonaws.com

中东(巴林)

*.vfs.cloud9.me-south-1.amazonaws.com

vfs.cloud9.me-south-1.amazonaws.com

南美洲(圣保罗)

*.vfs.cloud9.sa-east-1.amazonaws.com

vfs.cloud9.sa-east-1.amazonaws.com

应用程序预览选项卡显示错误或空白

问题:在 IDE 菜单栏中,当您选择 Preview, Preview Running Application(预览、预览正在运行的应用程序)Tools, Preview, Preview Running Application(工具、预览、预览正在运行的应用程序),以便尝试在 IDE 中的预览选项卡上显示您的应用程序时,该选项卡将显示错误或空白。

可能的原因:

  • 您的应用程序未在 IDE 中运行。

  • 您的应用程序未使用 HTTP 运行。

  • 您的应用程序正通过多个端口运行。

  • 您的应用程序正通过 808080818082 之外的端口运行。

  • 您的应用程序正使用 127.0.0.1localhost0.0.0.0 之外的 IP 运行。

  • 在预览标签页的 URL 中未指定端口 (808080818082)。

  • 您的网络阻止流向端口 808080818082 的入站流量。

  • 您正在尝试转到包含 IP 127.0.0.1localhost0.0.0.0 的地址。默认情况下, AWS Cloud9 IDE 会尝试访问您的本地计算机。它不会尝试访问连接到环境的实例或您自己的服务器。

建议的解决方案:

  • 确保此应用程序正在 IDE 中运行。

  • 确保此应用程序正在使用 HTTP 运行。有关 Node.js 和 Python 中的示例,请参阅运行应用程序

  • 确保应用程序只通过一个端口运行。有关 Node.js 和 Python 中的示例,请参阅运行应用程序

  • 确保应用程序正通过端口 808080818082 运行。有关 Node.js 和 Python 中的示例,请参阅运行应用程序

  • 确保应用程序正使用 IP 127.0.0.1localhost0.0.0.0 运行。有关 Node.js 和 Python 中的示例,请参阅运行应用程序

  • :8080:8081:8082 添加到预览标签页上的 URL。

  • 确保您的网络允许入站流量通过端口 808080818082。如果您无法更改您的网络,请联系您的网络管理员。

  • 如果您正在尝试访问一个包含 IP 127.0.0.1localhost0.0.0.0 的地址,请尝试转到以下地址:https://12a34567b8cd9012345ef67abcd890e1.vfs.cloud9.us-east-2.amazonaws.com/。在该地址中,12a34567b8cd9012345ef67abcd890e1 是 AWS Cloud9 分配给环境的 ID。us-east-2 是环境所在 AWS 区域 的 ID。您也可以尝试在 IDE 之外转到这个地址。但是,仅当环境的 IDE 处于打开状态并且应用程序正在同一个 Web 浏览器中运行时,这才会起作用。

  • 当您确定满足所有之前的条件后,请尝试停止应用程序,然后重新启动它。

  • 如果您已停止应用程序并重新启动,请尝试在菜单栏上重新选择 Preview (预览)、Preview Running Application(预览正在运行的应用程序)Tools (工具)、Preview (预览)、Preview Running Application (预览正在运行的应用程序)。或者,如果选项卡已显示,则尝试在相应的应用程序预览标签页上选择 Refresh (刷新) 按钮(圆形箭头)。

无法在 IDE 中预览 Web 内容,因为与站点的连接不安全

问题:当您尝试访问诸如 AWS Cloud9 EC2 环境中托管的 WordPress 网站之类的 Web 内容时,IDE 预览窗口无法显示该内容。

可能的原因:默认情况下,您在 AWS Cloud9 IDE 的 “应用程序预览” 选项卡中访问的所有网页都会自动使用 HTTPS 协议。如果页面的 URI 具有不安全的 http 协议,则会自动替换为 https。并且您无法通过将 https 手动更改回 http 的方式来访问不安全的内容。

建议的解决方案:从尝试在 IDE 中预览的网站中删除不安全的 HTTP 脚本或内容。按照 Web 服务器或内容管理系统的说明,获取有关实施 HTTPS 的指导。

预览文件时返回 499 错误

问题:当您尝试使用 AWS Cloud9 IDE 预览包含包含该属性的<script>元素且该srctype属性设置为的文件时module,会出现 499 错误,脚本无法按预期运行。

原因: AWS Cloud9 IDE 中的文件预览提取请求要求网络浏览器发送 Cookie 才能进行身份验证。默认情况下,Web 浏览器会为常规脚本请求发送 Cookie。他们不会为模块脚本请求发送 Cookie,除非您添加 crossorigin 属性。

解决方案:crossorigin 属性添加至 <script> 元素。例如,<script type="module" src="index.js" crossorigin></script>。然后,保存更改的文件,并尝试再次预览该文件。

Performance

以下部分概述了与性能相关的故障排除问题。

AWS Cloud9 IDE 冻结了很长时间

问题:在启动期间和执行刷新时, AWS Cloud9 IDE 终端会冻结很长时间并且无法使用。

原因:您的环境中可能含有大量文件正在被 AWS Cloud9的文件监视模块递归监视。

推荐的解决方案:您可以降低文件监视深度(最小值为 1),并考虑将大型文件夹或与源代码无关的文件夹(构建输出/构件、第三方软件包)添加到忽略的模式中。要完成此操作,请导航至首选项 > 用户设置 > 文件监视。请注意,这将导致 AWS Toolkit CodeLenses 中无法正常运行。

另一种可能的解决方案是考虑通过减少要搜索的最大文件数来忽略与源代码无关的大型文件和文件夹。要完成此操作,请导航至首选项 > 项目设置 > 在文件中查找。请注意,这将导致被忽略的文件夹不会显示在文件搜索中。

控制台警告:“Switching to the minimal code completion engine...(切换到最小代码完成引擎……)”

问题:在 AWS Cloud9 控制台中工作时(例如,打开 IDE 或刷新 IDE 的网页时),您会看到以下消息:“在此环境中有一个或多个会话或协作者处于活动状态。切换到最小代码完成引擎来节省内存。” 结合此消息来看,代码完成行为可能很慢或间歇。

原因:运行代码完成引擎占用环境中的内存和 CPU 周期。此外,每个协作者和每个额外会话都需要单独的代码完成引擎。为避免使用太多资源,尤其是在t2.nano和等小实例大小上t2.micro,请 AWS Cloud9 切换到最低限度的代码完成引擎。

建议的解决方案:如果您计划经常协作或长时间协作,请在创建 EC2 环境时选择更大的 Amazon EC2 实例。或者,也可以将 SSH 环境连接到容量更大的实例。

注意

选择更大的 Amazon EC2 实例可能会 AWS 账户 导致您产生额外费用。有关更多信息,请参阅 Amazon EC2 定价

IDE 警告:“This environment is running low on memory(此环境内存不足)”或“This environment has high CPU load(此环境具有较高 CPU 负载)”

问题:在 IDE 运行时,出现一条类似以下短句的消息,“this environment is running low on memory(此环境内存不足)”或“this environment has high CPU load(此环境具有较高 CPU 负载)”

原因: IDE 可能没有足够的计算资源用来继续运行而不发生延迟或挂起。

建议的解决方案:

  • 停止一个或多个正在运行的进程以释放可用内存。为此,请在环境的 IDE 中的菜单栏上,选择 Tools, Process List(工具、进程列表)。对于要停止的每个进程,请选择进程,然后选择 Force Kill (强制终止)

  • 在环境中创建交换文件。交换文件是操作系统可以用作虚拟内存的环境中的文件。

    要确认环境当前是否正在使用交换内存,请在环境中的终端会话中运行 top 命令。如果正在使用交换内存,则输出将显示非零 Swap 内存统计数据(例如 Swap: 499996k total, 1280k used, 498716 free, 110672k cached)。要停止显示实时内存信息,请按 Ctrl + C

    要创建交换文件,请在环境中运行类似如下的命令。

    sudo fallocate --length 512MB /var/swapfile && sudo chmod 600 /var/swapfile && sudo mkswap /var/swapfile && echo '/var/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab > /dev/null

    上述命令执行以下操作:

    1. /var 目录中创建一个名为 swapfile 的 512 MB 文件。

    2. 将对 swapfile 文件的访问权限更改为读写(仅针对所有者)。

    3. swapfile 文件设置为交换文件。

    4. 将信息写入 /etc/fstab file。这使得该交换文件在系统重新启动时可用。

    运行上述命令后,要使此交换文件立即可用,请运行以下命令。

    sudo swapon /var/swapfile
  • 调整大小或将环境移动到具有更多计算资源的实例或服务器。要移动 Amazon EC2 实例或调整其大小,请参阅 移动环境并对 Amazon EBS 卷调整大小或加密。对于其他实例或服务器类型,请参阅您的实例或服务器的文档。

无法在 AWS Cloud9 IDE 中上传文件

问题:用户无法在 AWS Cloud9 IDE 中上传大文件。此类上传失败。

原因: AWS Cloud9 限制上传到 AWS Cloud9 IDE 的速度,结果文件上传请求超时。

推荐的解决方案:我们建议将文件上传到 Amazon S3,然后使用 Amazon S3 通过 AWS Cloud9 IDE 中的 CLI 将文件下载到环境中。有关将对象上传至 Amazon S3 的更多信息,请参阅《Amazon S3 用户指南》中的上传对象

AWS Cloud9 IDE 中的下载速度很慢

问题:用户在尝试从 AWS Cloud9 IDE 下载文件时遇到下载速度慢的问题。

原因:将文件从 IDE 下载到本地文件系统时,传输速度将限制为 0.1 兆字节/秒。

推荐的解决方案:要加快文件传输速度,请使用 AWS Cloud9 IDE 中的 CLI 将文件上传到 Amazon S3,然后使用 Amazon S3 从那里下载文件。

无法在 IDE 中预览 Web 内容,因为与站点的连接不安全

问题:当您尝试访问诸如 AWS Cloud9 EC2 环境中托管的 WordPress 网站之类的 Web 内容时,IDE 预览窗口无法显示该内容。

可能的原因:默认情况下,您在 AWS Cloud9 IDE 的 “应用程序预览” 选项卡中访问的所有网页都会自动使用 HTTPS 协议。如果页面的 URI 具有不安全的 http 协议,则会自动替换为 https。并且您无法通过将 https 手动更改回 http 的方式来访问不安全的内容。

建议的解决方案:从尝试在 IDE 中预览的网站中删除不安全的 HTTP 脚本或内容。按照 Web 服务器或内容管理系统的说明,获取有关实施 HTTPS 的指导。

回到顶部

第三方应用程序和服务

以下部分概述了与第三方应用程序和服务相关的故障排除问题。

由于 tmux 会话错误,无法与 AWS Cloud9 中的终端窗口交互

问题:当您尝试在中启动新的终端窗口时 AWS Cloud9,预期的命令行界面不可用。没有命令提示符,您无法输入文本。将返回 tmux: need UTF-8 locale (LC_CTYPE)invalid LC_ALL, LC_CTYPE or LANG 等错误消息。

可能的原因:终端无响应可能是由 tmux 错误引起的。 AWS Cloud9 使用 tmux 实用程序。这样,即使在页面重新加载或重新连接到开发环境时,终端中显示的信息也会保持不变。

tmux 会话中,终端窗口中显示的内容由客户端处理。客户端与可以管理多个会话的服务器通信。服务器和客户端通过位于 tmp 文件夹中的套接字进行通信。如果您的开发环境中缺少该 tmp 文件夹或对其应用了过于严格的权限,则 tmux 会话将无法运行。如果发生这种情况,IDE 中的终端窗口将变得没有响应。

建议的解决方案:如果 tmux 错误阻止您与终端窗口进行交互,请使用另一种方法来创建具有正确权限的 tmp 文件夹。这样一来就可以运行tmux 会话。一种解决方案是导出 .bash_profile 中或 .bashrc 文件中的 LC_CTYPE。另一个推荐的解决方案是使用 AWS Systems Manager 来设置主机管理配置。这允许通过 Amazon EC2 控制台访问相关实例。

设置主机管理

  1. 首先,在 AWS Cloud9 控制台中,找到您的环境实例的名称。为此,您可以选择 Your environments(您的环境)页面中的相关面板并选择 View details(查看详细信息)。在 Environment details(环境详细信息)页面上,选择 Go to Instance(转到实例)。在 Amazon EC2 控制台中,确认需要访问的实例的名称。

  2. 现在进入 AWS Systems Manager 控制台,在导航窗格中选择 “快速设置”。

  3. Quick Setup(快速设置)页面上,选择 Create(创建)。

  4. 对于 Configuration types(配置类型),请转到 Host Management(主机管理),然后选择 Create(创建)。

  5. 对于 Customize Host Management configuration options(自定义主机管理配置选项),在 Targets(目标)部分中,选择 Manual(手动)。

  6. 选择要访问的 EC2 实例,然后选择 Create(创建)。

连接到实例并运行命令

注意

以下步骤适用于新的 EC2 控制台。

  1. 在 Amazon EC2 控制台的导航窗格中,选择 Instances(实例),然后选择要连接的实例。

  2. 选择连接

    如果 Connect(连接)未激活,您可能需要先启动实例。

  3. Connect to your instance(连接到您的实例)窗格中,对于 Connection method(连接方法),请选择 Session Manager(会话管理器),然后选择 Connect(连接)。

  4. 在出现的终端会话窗口中,输入以下命令。这些命令会创建具有正确权限的 tmp 文件夹,以便 tmux 套接字可用。

    sudo mkdir /tmp sudo chmod 777 /tmp sudo rmdir /tmp/tmux-*

无法使用早期版本的 Microsoft Edge 浏览器加载 IDE

问题:尝试使用 Microsoft Edge Web 浏览器加载 AWS Cloud9 IDE 时返回HTTP403: FORBIDDEN错误。

可能的原因: AWS Cloud9 IDE 不支持某些较早版本的Microsoft Edge。

建议的解决方案:要更新浏览器,请选择 Microsoft Edge 工具栏中的省略号(...)按钮。从菜单中选择 Settings(设置),然后选择 About Microsoft Edge(关于 Microsoft Edge)。如果需要更新,则会自动下载并安装。

调试 C++ 项目时 gdb 出现错误

问题:尝试在 IDE 中调试 C++ 项目时,gdb 调试程序报告错误。

可能的原因:假设您的 AWS Cloud9 环境使用某些 EC2 实例类型(例如,t3.smallm5.large)。然后,当您尝试使用 IDE 的内置运行程序运行和调试 C++ 项目时,可能会出现调试错误。发生此错误的原因可能是为您的环境预安装的 gdb(GNU 项目调试程序)版本在某些处理器平台上不适用。您可能会看到以下错误代码。

GDB server terminated with code 1

建议的解决方案:gdb 不支持某些处理器平台的问题,自 3.0 版本起开始修复。应卸载旧版本的调试程序并升级到 gdb 的新版本:

  1. 在 AWS Cloud9 终端中运行以下命令,删除调试器的现有版本。

    sudo yum -y remove gdb
  2. 检索 gdb 的归档文件、将其解压,然后通过运行以下命令导航到包含解压文件的目录。

    wget "http://ftp.gnu.org/gnu/gdb/gdb-8.3.tar.gz" tar xzf gdb-8.3.tar.gz cd gdb-8.3
  3. 通过运行以下命令生成调试器。为此,请将以下文本作为单个块复制并粘贴,然后按回车键 运行make

    ./configure --prefix=/usr \ --with-system-readline \ --with-python=/usr/bin/python3 && make
  4. 安装调试程序。

    sudo make -C gdb install
  5. 确认调试程序的更新版本已安装完成。

    gdb --version

PHP 运行器出现问题 AWS Cloud9

问题:用户无法在 PHP CLI 运行程序终端中查看任何输出。

原因:CLI 运行程序需要设置为 PHP,并且需要启用调试器模式。

推荐的解决方案:将 CLI 运行程序设置为 PHP,并确保启用调试器模式。

与 Node.js 相关的 GLIBC 错误

问题:用户无法运行 Node.js 并收到 GLIBC 错误。以下是这些错误消息的示例:

node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)

原因:可能是与正在使用的实例有关的 Node.js 版本问题。

推荐的解决方案:有关如何为 AWS Cloud9安装 Node.js 的信息,请参阅 步骤 1:安装所需工具 部分。