我正在尝试设置AWS Mobile Hub,特别是使用Amplify和Angular(5)。我已经设置了身份验证,使用提供的功能,效果很好。我可以通过AWS提供的示例登录并访问用户名,如下所示:
this.amplifyService.authStateChange$
.subscribe(authState => {
this.signedIn = authState.state === 'signedIn';
if (!authState.user) {
this.user = null;
} else {
this.user = authState.user;
this.greeting = 'Hello ' + this.user.username;
console.log('greeting ' + this.greeting );
}
});
然后我想设置APIGateway / Lambda函数-因此我像这样启用了cloudLogic:
awsmobile cloud-api启用 然后做了推 awsmobile推送
我在MobileHub中看到了Cloudlogic sampleAPI的设置。但是,当我尝试访问时,它会重复显示不可用。
newmethod(View) {
this.amplifyService.api().get('sampleCloudApi', '/items')
.then(result => console.log('result' + result));
}
我在JavaScript控制台中收到的错误是:
core.js:1449 ERROR Error: Uncaught (in promise): Api sampleCloudApi does not exist
at resolvePromise (zone.js:814)
at resolvePromise (zone.js:771)
at eval (zone.js:873)
at ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:4751)
at ZoneDelegate.invokeTask (zone.js:420)
at Zone.runTask (zone.js:188)
at drainMicroTaskQueue (zone.js:595)
at ZoneTask.invokeTask [as invoke] (zone.js:500)
at invokeTask (zone.js:1540)
我不知道下一步该怎么做。我试图通过这种方式调用:
awsmobile cloud-api调用sampleCloudApi post / items'{“ body”:{“ testKey”:“ testValue”}}''
但是我仍然没有得到200
答案 0 :(得分:2)
万一有其他人碰到这个问题,我只需要将awe-exports.js从后端目录复制到src目录中的aws-exports.ts。添加云逻辑部分后,必须手动完成此操作
答案 1 :(得分:0)
您还可以将package.json中的“开始”脚本修改为以下内容,因此您不必每次都手动对其进行更改。
"start": "[ -f src/aws-exports.js ] && mv src/aws-exports.js src/aws-exports.ts || ng serve; ng serve"
答案 2 :(得分:0)
当您运行 awsmobile init 时,它会询问src /目录,因为这将是aws-exports.js文件的保存位置。每次运行push或pull时,此文件都会使用云中资源的最新配置进行更新。