我創建了一個簡單的Lambda函數來調用網頁,當我從函數頁面進行測試時,此工作正常,但嘗試創建一個技能來調用這個函數,我最終得到一個「遠程端點不能被調用,或者它返回的響應是無效的。」錯誤。Alexa技能ARN - 無法調用遠程端點,或者返回的響應無效
lambda函數
var http = require('http');
exports.handler = function(event, context) {
console.log('start request to ' + event.url)
http.get(event.url, function(res) {
console.log("Got response: " + res.statusCode);
context.succeed();
}).on('error', function(e) {
console.log("Got error: " + e.message);
context.done(null, 'FAILURE');
});
console.log('end request to ' + event.url);
}
測試事件的代碼如下所示:
{
"url": "http://mywebsite.co.uk"
}
和我添加了一個觸發了 「Alexa的技能套裝」。
該函數的ARN作爲顯示:
arn:aws:lambda:us-east-1:052516835015:function:CustomFunction
Alexa的技能(開發者門戶網站)
我然後創建一個技能用一個簡單的意圖:
{
"intents": [
{
"intent": "CustomFunction"
}
]
}
並創建了一個話語爲:
CustomFunction execute my custom function
在我的技能的配置部分中,我選擇了「AWS Lambda ARN(亞馬遜資源名稱)」選項,並將ARN輸入到北美地區的框中。
在測試 - >服務模擬器部分,我已經添加了「執行我的自定義函數」爲文本,這將改變LAMBDA請求顯示:
{
"session": {
"sessionId": "SessionId.a3e8aee0-acae-4de5-85df-XXXXXXXXX",
"application": {
"applicationId": "amzn1.ask.skill.XXXXXXXXX"
},
"attributes": {},
"user": {
"userId": "amzn1.ask.account.XXXXXXXXX"
},
"new": true
},
"request": {
"type": "IntentRequest",
"requestId": "EdwRequestId.445267bd-2b4a-45ef-8566-XXXXXXXXX",
"locale": "en-GB",
"timestamp": "2016-11-27T22:54:07Z",
"intent": {
"name": "RunWOL",
"slots": {}
}
},
"version": "1.0"
}
但是當我運行測試,我得到出現以下錯誤:
The remote endpoint could not be called, or the response it returned was invalid.
有沒有人有任何想法,爲什麼技能無法連接到該功能?
謝謝
如果你看一下日誌中的CloudWatch您拉姆達 - 它被調用 – Tom