Amazon SAMCLI 纠正 - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon SAMCLI 纠正

对使用、安装和管理Amazon Serverless Application Model命令行界面 (Amazon SAMCLI) 时的错误消息进行故障排除。

安装错误

Linux

Docker 错误:“无法连接 Docker er 错误 Docker 错误:“无法连接Do docker 守护程序在这台主机上运行吗?”

在某些情况下,要访问 Docker er Docker docker Docker docker Docker er cker docker Dockerec2-user 如果您收到此错误,请尝试重启您的实例。

Shell 错误:“找不到命令”

如果您收到此错误,则说明您的 shell 无法在路径中找到Amazon SAM CLI 可执行文件。验证您安装Amazon SAM CLI 可执行文件的目录的位置,然后验证该目录是否在您的路径中。

Amazon SAMCLI 错误:“/lib64/libc.so.6:找不到 `GLIBC_2.14'版本(/usr/local/aws-sam-cli /dist/libz.so.1 需要)”

如果您收到此错误,则说明您使用的是不支持的 Linux 版本,并且内置的 glibc 版本已过时。试以下任一项任一项:

  • 将你的 Linux 主机升级到 CentOS、Fedora、Ubuntu 或 Amazon Linux 2 的 64 位版本。

  • 按照的说明进行操作安装 Amazon SAM CLI

macOS

安装失败错误


            显示安装失败消息的Amazon SAM CLI 安装程序的图片

如果您正在为用户安装Amazon SAM CLI 并选择了一个您没有写入权限的安装目录,则可能会出现此错误。试以下任一项任一项:

  1. 选择您具有写入权限的其他安装目录。

  2. 删除安装程序。然后,下载并再次运行它。

错误消息

curl 错误:“curl: (6) 无法解析:...”

在尝试调用 API Gateway 终端节点时,您会显示以下错误 API Gateway 终

curl: (6) Could not resolve: endpointdomain (Domain name not found)

这意味着您试图向无效的域名发送请求。如果您的无服务器应用程序未能成功部署,或者您的curl命令中有拼写错误,就会发生这种情况。使用Amazon CloudFormation控制台或,验证应用程序是否成功部署Amazon CLI,并验证您的curl命令是否正确。

错误:创建托管资源失败:找不到凭证

运行sam deploy命令时,您会看到以下错误:

Error: Failed to create managed resources: Unable to locate credentials

这意味着您尚未设置Amazon凭据以使Amazon SAM CLI 进行Amazon服务调用。要解决这个问题,你必须设置Amazon证书。有关更多信息,请参阅设置Amazon证书

错误:pip 的依赖关系解析器...

错误示例文本:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
可能的原因:如果您使用安装软件包pip,则软件包之间的依赖关系可能会发生冲突。

aws-sam-cli软件包的每个版本都依赖于该aws-sam-translator软件包的版本。例如,aws-sam-cliv1.58.0 可能依赖于aws-sam-translator v1.51.0。

如果您使用安装Amazon SAM CLIpip,然后安装另一个依赖于更新版本的软件包aws-sam-translator,则会出现以下情况:

  • aws-sam-translator将安装较新版本的。

  • 的当前版本aws-sam-cli和的更新版本aws-sam-translator可能不兼容。

  • 当你使用Amazon SAM CLI 时,会出现依赖关系解析器错误。

解决方案:
  1. 使用Amazon SAM CLI 原生软件包安装程序。

    1. Amazon SAMCLI 的权限 CLI 卸CLI。有关说明,请参阅 卸载Amazon SAM CLI

    2. 使用本机软件包安装程序安装Amazon SAM CLI。有关说明,请参阅 安装 Amazon SAM CLI

    3. 必要时,使用本机软件包安装程序升级Amazon SAM CLI。有关说明,请参阅 升级 CAmazon SAM LI

  2. 如果您必须使用pip,我们建议您将Amazon SAM CLI 安装到虚拟环境中。这样可以确保在出现错误时提供干净的安装环境和隔离的环境。有关说明,请参阅 使用以下方法将Amazon SAM CLI 安装到虚拟环境中pip

错误:需要在本地运行Amazon SAM 项目Docker。你安装了吗?

运行sam local start-api命令时,您会看到以下错误:

Error: Running Amazon SAM projects locally requires Docker. Have you got it installed?

这意味着你没有Docker正确安装。 Docker必须在本地测试应用程序。要解决此问题,请为开发主机的 Docker er er Docker er docker。有关更多信息,请参阅安装 Docker

错误:未满足安全限制

跑步时sam deploy --guided,系统会提示你提出问题Function may not have authorization defined, Is this okay? [y/N]。如果您以(默认响应)此提示N(默认响应),会显示以下错误:

Error: Security Constraints Not Satisfied

该提示通知您,您要部署的应用程序可能在未经授权的情况下配置了可公开访问的 Amazon API Gateway API。N回应此提示,就是说这不行。

要解决此问题,您有以下选项:

  • 使用授权配置您的应用程序。有关配置授权的信息,请参阅控制对 API Gateway API 的访问

  • 如果您打算在未经授权的情况下使用可公开访问的 API 终端节点,请重新启动部署并回答此问题,Y以表明您可以进行部署。

消息:缺少身份验证令牌

在尝试调用 API Gateway 终端节点时,您会显示以下错误 API Gateway 终

{"message":"Missing Authentication Token"}

这意味着你试图向正确的域名发送请求,但是 URI 不可识别。要修复此问题,请验证完整 URL,然后使用正确的 URL 更新curl命令。