无服务器错误:请求中包含的安全令牌无效

问题描述 投票:0回答:9

当我输入无服务器部署时出现此错误: ServerlessError:请求中包含的安全令牌无效。

amazon-web-services amazon-iam serverless-framework serverless
9个回答
15
投票

我必须在我的

--aws-profile
命令中指定sls部署
serverless deploy
,如下所示:

sls deploy --aws-profile common


3
投票

您能提供更多信息吗?

确保您在

~/.aws/config
~/.aws/credentials
中获得正确的凭据。您可以通过运行
aws configure
来设置这些。更多信息请参见:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-quick-configuration

还要确保相关 IAM 用户具有附加的安全策略,允许访问您需要的所有内容,例如 CloudFormation。


2
投票

在 AWS 中创建一个新用户(不要使用根密钥)。

在 AWS CodeCommit 的 SSH 密钥中,生成新的访问密钥。

复制值并运行:

serverless config credentials --overwrite --provider aws --key bar --secret foo

sls deploy


1
投票

就我而言,我向提供商添加了区域。我想它不是从凭据文件中读取的。

provider:
  name: aws
  runtime: nodejs12.x
  region: cn-northwest-1

0
投票

就我而言,无服务器文件中缺少

localstack
条目。 我有所有应该在里面的东西,但它都在里面
custom
(而不是
custom.localstack
)。


0
投票

就我而言,多个凭据存储在

~/.aws/credentials
文件中。

无服务器正在选择默认凭据。

因此,我将新凭据保留在

[default]
下,并删除了以前的凭据。这对我有用。


0
投票

要从AWS运行该函数,您需要使用access_key_id和secret_access_key配置AWS 但 如果您想在本地运行该函数,可能会出现此错误 所以为此使用这个命令

sls invoke local -f functionName

它将在本地运行该函数,而不是在aws上运行


0
投票

如果这些答案都不起作用,可能是因为您需要在无服务器账户中添加

provider
并添加您的 AWS 密钥。


0
投票

如果 ~/.aws/credentials 文件上的凭证没问题。 删除 .yml 配置文件中的行

区域:us-east-1

然后再试一次

© www.soinside.com 2019 - 2024. All rights reserved.