我正在尝试通过 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"
}
}