Webページを呼び出すための単純なラムダ関数を作成しましたが、これは機能ページからテストするとうまくいきますこの機能を呼び出すためのスキルを作成します。「リモートエンドポイントを呼び出すことができなかったか、返された応答が無効でした。エラー。Alexa Skill ARN - リモートエンドポイントを呼び出せなかったか、返されたレスポンスが無効でした
ラムダ関数
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が表示されている:
{
"intents": [
{
"intent": "CustomFunction"
}
]
}
:私は、単純な意図を持ってスキルを作成しました
arn:aws:lambda:us-east-1:052516835015:function:CustomFunction
Alexaのスキル(開発者向けポータル)
を作成し、発話を次のように作成しました。
CustomFunction execute my custom function
私のスキルの設定セクションでは、「AWS Lambda ARN(Amazonリソース名)」オプションを選択し、北アメリカのボックスにARNを入力しました。
テストで- >サービスシミュレータのセクション、私はテキストとして「私のカスタム関数を実行する」と、これが表示するラムダ要求を変更追加しました:
{
"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.
スキルが機能に接続できない理由については、誰にも分かりませんか?
おかげ
クラウドウォッチのラムダのログを見ると、 – Tom