Amplify でのVSCodeリモートコンテナでのnpm start と amplify mock api の実行
ローカルで、npm start
と amplify mock api
を同時に実行すると、ローカルでDynamoDB localが動きWeb画面側のGraphQLが連動して動かせるようになります。
amplify のワークショップ https://amplify-sns.workshop.aws/ja/30_mock/30_post_front_end.html
にて
こまでの変更をクラウドに反映して確認していきましょう。(実行には数分かかります)
amplify push
$ amplify mock apiと$ npm startを同時に実行し、$ amplify pushせずに動作確認を行うことも可能です。
ただし、作業環境にコンテナをお使いの場合はaws-exports.jsファイルの
キーが"aws_appsync_graphqlEndpoint"の値を"http://localhost:20002/graphql"に変更する必要があることにご注意ください。
とあるので、そのようにやる。
- 以下の & を付けた方法(コマンド1行)だと、画面側からGraphQLが呼び出しされてDynamoDBへのアクセスができていない (理由までは不明)
npm start & amplify mock api
または
npm start & amplify mock api &
対処
VSCodeの メニューバーの「Terminal」 -> New Terminal にてターミナルを複数起動する
それぞれのターミナルで、npm start
とamplify mock api
を実行するファイル
src/aws-exports.js
/* eslint-disable */
// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.
const awsmobile = {
"aws_project_region": "us-west-2",
"aws_cognito_identity_pool_id": "us-west-2:d7d643b5-xxx",
"aws_cognito_region": "us-west-2",
"aws_user_pools_id": "us-west-2_xxx",
"aws_user_pools_web_client_id": "54fxxx",
"oauth": {},
"aws_appsync_graphqlEndpoint": "http://localhost:20002/graphql",
"aws_appsync_region": "us-west-2",
"aws_appsync_authenticationType": "AMAZON_COGNITO_USER_POOLS",
"aws_appsync_apiKey": "da2-fakeApiId123456",
"aws_appsync_dangerously_connect_to_http_endpoint_for_testing": true
};
export default awsmobile;
クラウドにpushするとクラウドのDynamoDBを更新したり、定義を変えてしまうことなく、自身のローカルでAttributeやGSIの確認、PK/SKの確認を行うことができるようになる
なお、 https://qiita.com/ssugimoto/items/bdf7a55dc11f23fd6d48 の記事は、
amplify mock api
で起動したDynamoDBへの接続方法のため異なります。
Author And Source
この問題について(Amplify でのVSCodeリモートコンテナでのnpm start と amplify mock api の実行), 我々は、より多くの情報をここで見つけました https://qiita.com/ssugimoto/items/ad47997e9f39cc2688d9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .