4

我正在尝试通过 ask-cli 设置工作流程,以使用 Amazon lambda 后端开发 Amazon 技能。我创建了一项技能,在使用“ask api ...”命令时效果很好,但是当我使用“ask lambda ...”命令时,例如“ask lambda download -f MySkill”,它使用了错误的区域环境。我得到错误:

ResourceNotFoundException: Function not found: arn:aws:lambda:us-east-1:123456789:function:MySkill

如您所见,它正在 us-east-1 中寻找 lambda 实例。但是我的 lambda 实例位于 eu-west-1 中,如下面我的 Skill.json 文件中所指定。这个问题几乎与https://forums.developer.amazon.com/questions/87922/ask-cli-does-not-use-region-setting-from-aws-confi.html重复。该问题的答案意味着您可以在其中一个 json 文件中的某处添加一个区域字段,但我不知道在哪里。任何帮助,将不胜感激。

这是我的 ~/.ask/cli_config

{
  "profiles": {
    "default": {
      "aws_profile": "default",
      "token": {
        "access_token": "My_access_token",
        "refresh_token": "My_refresh_token",
        "token_type": "bearer",
        "expires_in": 3600,
        "expires_at": "2017-10-06T14:12:26.171Z"
      },
      "vendor_id": "My_vendor_id"
    }
  }
}

这是我的 ~/.aws/config

[default]
output = text
region = eu-west-1

这是我的 Skill.json,当我打电话时得到:“ask api get-skill -s Skill_id > Skill.json”

{
  "skillManifest": {
    "publishingInformation": {
      "locales": {
        "en-GB": {
          "name": "My Skill"
        }
      },
      "isAvailableWorldwide": true,
      "category": "PUBLIC_TRANSPORTATION",
      "distributionCountries": []
    },
    "apis": {
      "custom": {
        "endpoint": {
          "uri": "arn:aws:lambda:eu-west-1:123456789:function:MySkill"
        },
        "interfaces": []
      }
    },
    "manifestVersion": "1.0"
  }
}
4

2 回答 2

0

lambda部分中指定的区域操作系统.ask/config。例子:

        "lambda": [
          {
            "alexaUsage": [
              "custom/default"
            ],
            "arn": "arn:aws:lambda:eu-west-1:XXXXXXXXX:function:ask-premium-hello-world",
            "awsRegion": "eu-west-1",
            "codeUri": "lambda/custom",
            "functionName": "ask-premium-hello-world",
            "handler": "index.handler",
            "revisionId": "XXXXXXXXXXXXXXXXXX",
            "runtime": "nodejs8.10"
          }
        ]
于 2019-08-12T22:14:26.067 回答
0

对我来说,如果我编辑以下文件,它会起作用:

~/.aws/credentials(Linux、macOS 或 Unix)

C:\Users\USERNAME\.aws\credentials(视窗)

[ask_cli_default]
aws_access_key_id=YOUR_AWS_ACCESS_KEY
aws_secret_access_key=YOUR_AWS_SECRET_KEY
region=eu-west-1
于 2019-02-28T08:34:49.203 回答