mobilehub プロジェクトに関連付けられているイオン プロジェクトで増幅を構成しました。
API は、サーバーレス フレームワークを使用して作成されています。
functions:
device:
handler: handler.device
events:
- http:
path: devices
method: get
authorizer: aws_iam
- http:
path: devices
method: put
authorizer: aws_iam
- http:
path: devices
method: post
authorizer: aws_iam
- http:
path: devices
method: delete
authorizer: aws_iam
API は機能し、私の知る限りでは、cognito ユーザー プールに関連付けられています。実際、その API で get を呼び出すと、「トークンがありません」というメッセージが表示されます。
Ionic アプリケーションで API 呼び出しを実装しようとしています。アプリケーションは Ionicaws
テンプレートなので、問題なく cognito にログインできます。
「aws-exports.js」ファイルを mobilehub ページからダウンロードし、ソースに含めてインポートしました
import awsmobile from '../../aws-exports';
import Amplify, { API } from 'aws-amplify';
ionViewDidLoad(){
Amplify.configure(awsmobile);
console.log(Amplify);
let apiName = 'dev-parameters';
let path = '/devices';
API.get(apiName, path).then(response => {
debugger;
console.log(response);
});
}
OPTIONS
ただし、行われた http 呼び出しから、 403 を返す呼び出しが行われたことがわかります。
リクエスト:
:method GET
:authority cx1smjqtj5.execute-api.eu-west-1.amazonaws.com
:scheme https
:path /dev/devices
user-agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 OPR/50.0.2762.67
upgrade-insecure-requests 1
accept text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q= 0.8
accept-encoding gzip, deflate, br
accept-language en-GB,en-US;q=0.9,en;q=0.8
応答:
{
"message": "Missing Authentication Token"
}
ここで何が欠けているのか、間違っているのか本当にわかりません。