故障排除 AWS Cloud9 - AWS Cloud9

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 Cloud IDE 9 1” 后,安装程序无法完成

问题: AWS Cloud9 在创建SSH开发环境的过程中安装在您的现有 Amazon EC2 实例或您自己的服务器上。在安装AWS Cloud9 程序对话框中看到以下消息后,安装就会停止:“Package Cloud9 1IDE”。如果您选择 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]
  • 如果您使用的是无入口的亚马逊EC2实例,则必须确保为 Amazon S3 配置了亚马逊VPC终端节点。有关这方面的更多信息,请参阅为 Amazon S3 下载依赖项配置亚马逊VPC终端节点。

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

问题:打开 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 调用在账户中创建环境时,会创建服务相关角色。但是,联合用户无法拨打电话IAMAPIs。有关更多信息,请参阅 “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是请求用户的亚马逊资源名称 (ARN)。

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

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

原因:您登录 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. https://console.aws.amazon.com/cloudformat ion 上打开 AWS CloudFormation 控制台。

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

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

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

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

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

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

如果几分钟FAILED后堆栈仍显示 DELETE_,则该环境仍不会被删除。您可以尝试手动删除各个失败的堆栈资源。

注意

手动删除失败堆栈的资源并不能将堆栈本身从您的资源中移除 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 Toolkit 为SAM模板定义的应用程序运行 AWS SAM CLI命令时,会出现错误。

可能的原因:使用 T AWS oolkit 在本地运行和调试无服务器应用程序时, 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 图像可以构建。移除所有未使用的东西 Docker 通过在的终端中运行以下命令IDE来制作图像。

docker image prune -a

如果您由于磁盘空间限制而反复遇到SAMCLI命令问题,请切换到使用其他实例类型的开发环境。

回到顶部

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

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

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

推荐的解决方案:要更新浏览器,请选择中的省略号 (...) 按钮 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/environment中创建子文件夹结构/时,会收到一条错误消息,指出无法打开此目录。

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

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

回到顶部

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

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

可能的原因:目前无法使用 for 的文件资源管理器在同名文件夹中创建子文件夹结构 /proj ects。 AWS Cloud9 IDE 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实例,然后选择创建

连接到实例并运行命令

注意

以下步骤适用于新主EC2机。

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

  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 实例在事先不知情或未经您批准的情况下以意想不到的方式运行。

建议的解决方案:

按照《亚马逊EC2用户指南》中更新EC2实例软件中的说明定期对 Amazon 实例应用系统更新。

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

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

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

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

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

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

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

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

建议的解决方案:

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

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

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

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

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

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

推荐的解决方案:解决由 Amazon 引起的 IP 地址冲突VPC和 Docker 使用相同IPv4CIDR的地址块,VPC为支持您的EC2环境的实例配置一个新的。对于这个新功能VPC,请配置一个与之不同的CIDR方块172.17.0.0/16。(您无法更改现有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/environment中创建子文件夹结构/时,会收到一条错误消息,指出无法打开此目录。

可能的原因:目前无法使用的文件系统home/ec2-user/environment在同名文件夹中创建子文件夹结构/。 AWS Cloud9 IDE您将无法从文件资源管理器访问此目录中的任何 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实例。

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

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

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

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

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

解决方案:如果您在EC2环境中安装或管理软件包或运行命令或脚本,请确保它们与RHEL(IDE对于 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

使用创建EC2环境时报告错误消息 “未授权访问资源” perform: ssm:StartSessionAWS CloudFormation

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

原因:对于使用 Systems Manager 进行无入口实例的EC2环境,用户无权调用作为配置一部分所需的权限。StartSession API

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

使用创建EC2环境时出现错误消息,报告没有授权 “执行:iam:GetInstanceProfile在资源:实例配置文件上AWSCloud9SSMInstanceProfile” AWS CLI

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

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

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

对 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可能无法启动,并且可能很难调试问题。

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

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

VPCEC2-Classic 账户出现错误:“无法访问您的环境”

问题:EC2-Classic 是在亚马逊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(事件)选项卡并检查以下条目:

    状态:CREATE_ FAILED

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

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

推荐的解决方案:使用 EC2-Classic 帐户,在创建EC2环境时必须选择VPC和子网。在配置设置页面的网络设置(高级)部分,选择您可以启动EC2实例的VPC和子网。

其他 AWS 服务

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

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

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

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

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

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

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

可能的原因:

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

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

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

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

  • 不URL正确。

  • 正在请求应用程序预览选项卡,而不是实例的公有 IP 地址。URL

  • 您正在尝试转到包含 IP 127.0.0.1localhost 的地址。它们IPs会尝试访问本地计算机上的资源,而不是环境中的资源。

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

  • Web 请求来自虚拟专用网络 (VPN),该网络会阻止通过应用程序所需的协议、端口或 IP 地址进行流量。

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

建议的解决方案:

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

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

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

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

  • 确保请求正确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

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

原因:在环境中的预期路径上找 AWS Cloud9 不到本SAM地,也就是说~/.c9/bin/sam。这是因为 L SAM ocal 尚未安装,或者如果已安装,则在该位置 AWS Cloud9 找不到。

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

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

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

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

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

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

推荐的解决方案:禁用控制 CT。 EC2从 AWS Control Tower 控制台访问.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可能无法启动,并且可能很难调试问题。

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

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

回到顶部

当 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实例。

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

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

回到顶部

应用程序预览

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

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

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

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

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

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

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

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

解决方案:在您的网络浏览器中启用第三方 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,当您选择 “预览”、“预览正在运行的应用程序” 或 “工具”、“预览”、“预览正在运行的应用程序” 以尝试在中的预览选项卡上显示您的应用程序时IDE,该选项卡会显示错误,或者该选项卡为空。

可能的原因:

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

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

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

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

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

  • 在预览选项卡URL上未指定端口(80808081、或8082)。

  • 您的网络阻止流向端口 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 中的示例,请参阅运行应用程序

  • 在预览选项卡URL上:8082添加:8080:8081、或。

  • 确保您的网络允许入站流量通过端口 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因为与网站的连接不安全

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

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

推荐的解决方案:从网站上删除您要在中预览的不安全的HTTP脚本或内容。IDE按照 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>。然后,保存更改的文件,并尝试再次预览该文件。

性能

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

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警告:“此环境的内存不足” 或 “此环境的CPU负载很高”

问题:在运行IDE时,您会看到一条消息,其中包含短语 “此环境内存不足” 或 “此环境CPU负载高”。

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

建议的解决方案:

  • 停止一个或多个正在运行的进程以释放可用内存。为此,请在环境的菜单栏上IDE选择 “工具”、“进程列表”。对于要停止的每个进程,请选择进程,然后选择 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 实例或调整其大小,请参阅AWS Cloud9 IDE从 Amazon EBS 卷中移出。对于其他实例或服务器类型,请参阅您的实例或服务器的文档。

无法在中上传文件 AWS Cloud9 IDE

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

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

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

下载速度很慢 AWS Cloud9 IDE

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

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

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

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

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

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

推荐的解决方案:从网站上删除您要在中预览的不安全的HTTP脚本或内容。IDE按照 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实例,然后选择创建

连接到实例并运行命令

注意

以下步骤适用于新主EC2机。

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

  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-*

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

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

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

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

调试gdb时出错 C++ 项目

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

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

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

PHPrunner in 有问题 AWS Cloud9

问题:用户无法在PHPCLI运行器终端中查看任何输出。

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

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

GLIBC与 Node.js 相关的错误

问题:用户无法运行 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:安装所需工具 部分。