我正在尝试通过ask-cli建立一个工作流程,用于开发亚马逊lambda后端的亚马逊技能。我已经创建了一个技能,它在使用"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文件中的某个位置添加一个region字段,但我不知道在哪里。任何帮助都将不胜感激。
这是我的~/.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"
}
}发布于 2019-02-28 16:34:49
对于我来说,如果我编辑以下文件,它就可以工作:
~/.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-08-13 06:14:26
在.ask/config的lambda部分中指定的区域。示例:
"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"
}
]https://stackoverflow.com/questions/46640807
复制相似问题