很抱歉这篇冗长的帖子!我已尽力使其尽可能简短,但我想把我必须清楚地解释情况的所有信息。
我的问题与AWS Lambda function deployment
使用有关JOVO CLI
。
每次我尝试将技能功能从本地部署到 Lambda 时,都会收到以下错误块。我不知道如何解决它。
$ jovo deploy -t lambda --ask-profile officialProfile
AccessDeniedException: User: arn:aws:iam::xxxxxxxxx:root is not authorized to perform: lambda:UpdateFunctionCode on resource: arn:aws:lambda:us-east-1:109918021270:function:sampleProjectNotes
但是我可以让$ jovo get alexaSkill --skill-id <Skill ID> --ask-profile officialProfile
and $jovo deploy --ask-profile officialProfile
(没有任何附加参数)命令运行没有任何问题。
为了从本地部署代码,我以 IAM 用户身份登录创建了一个 ASK 配置文件。以下是我遵循的步骤:
- 询问 init -p 官方简介
- 使用我的雇主创建的 IAM 用户凭据(电子邮件和密码)登录
- 收到成功消息,说明配置文件已创建
在做了一些研究之后,我在下创建了一个策略aws console
并将以下 JSON 添加到其中。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"iam:CreateRole",
"iam:GetRole",
"iam:AttachRolePolicy",
"iam:PassRole",
"lambda:AddPermission",
"lambda:CreateFunction",
"lambda:GetFunction",
"lambda:UpdateFunctionCode",
"lambda:UpdateFunctionConfiguration",
"lambda:ListFunctions",
"logs:FilterLogEvents",
"logs:getLogEvents",
"logs:describeLogStreams"
],
"Resource": "*"
}
}
然后将以下权限添加到我的 IAM 用户:
- AWSLambdaFullAccess
- AWSCodeDeployRoleForLamda
- 以及我之前创建的上述策略
但没有任何工作。在将代码部署到 Lambda 时,我仍然遇到同样的错误。
我的前辈说,也许问题是我试图以 root 用户身份访问 AWS,我需要使用我用户的 ARN。我无法理解如何使用或配置它。
我收到了一封电子邮件邀请,用于登录 Alexa 控制台以构建技能。当我创建 时ASK profile
,我使用相同的电子邮件地址和密码登录。这是一个root
帐户吗?
同时,我找到了这篇文章。AWS Access Key ID
也和AWS Secret Access Key
我在一起。但是想确定我在做什么,因为ASK profile
我已经创建了一个,如果这会导致任何进一步的问题。
到目前为止,我一直在从我的个人 AWS 根账户构建技能。这是我第一次使用 IAM 用户帐户。
更新:
根据@Paradigm的指示,当我尝试时ask deploy
,出现以下错误:
Get Lambda ARN arn:aws:lambda:us-east-1:xxxxxxxx:function:sampleProjectNotes failure for custom/NA.
AccessDeniedException: User: arn:aws:iam::xxxxxxxx:root is not authorized to perform: lambda:GetFunction on resource: arn:aws:lambda:us-east-1:xxxxxxxx:function:sampleProjectNotes