aws-amplify 6 がリリースされたことに注意してください。アップグレード ガイドをお探しの場合は、ここをクリックしてください
AWS Amplify は、クラウド運用のさまざまなカテゴリにわたって宣言的で使いやすいインターフェイスを提供します。 AWS Amplify は、JavaScript ベースのフロントエンド ワークフローやモバイル開発者向けの React Native とうまく連携します。
デフォルトの実装はアマゾン ウェブ サービス (AWS) で動作しますが、AWS Amplify はオープンであらゆるカスタム バックエンドまたはサービスに接続できるように設計されています。
カテゴリ | AWSプロバイダー | 説明 |
---|---|---|
認証 | アマゾンコグニート | 認証エクスペリエンスを作成するための API とビルディング ブロック。 |
分析 | アマゾンピンポイント | ユーザー セッションの追跡など、アプリケーションの分析データを収集します。 |
REST API | Amazon APIゲートウェイ | API Gateway およびその他の REST エンドポイントの Sigv4 署名と AWS 認証。 |
GraphQL API | AWS アプリ同期 | GraphQL または AWS AppSync エンドポイントと対話します。 |
データストア | AWS アプリ同期 | シンプルなオンライン/オフライン同期を備えた、共有および分散データのプログラミング モデル。 |
ストレージ | アマゾンS3 | パブリックで保護されたプライベート ストレージ バケット内のコンテンツを管理します。 |
Geo (開発者プレビュー) | アマゾン位置情報サービス | JavaScript ベースの Web アプリの地図と位置検索のための API と UI コンポーネントを提供します。 |
プッシュ通知 | アマゾンピンポイント | Amazon Pinpoint ターゲティングおよびキャンペーン管理サポートを使用してアプリにプッシュ通知を統合できます。 |
インタラクション | アマゾン・レックス | 深層学習テクノロジーを活用した会話型ボットを作成します。 |
パブリッシュサブ | AWS IoT | クラウドベースのメッセージ指向ミドルウェアとの接続を提供します。 |
国際化 | --- | 軽量の国際化ソリューション。 |
キャッシュ | --- | JavaScript 開発者が優先順位と有効期限を設定してデータを保存するための汎用 LRU キャッシュを提供します。 |
予測 | 様々な* | アプリを NLP、コンピューター ビジョン、TTS などの機械学習サービスに接続します。 |
AWS Amplify は、npm でaws-amplify
として利用できます。
始めるには、 「はじめに」ホームページからプラットフォームを選択してください
Amplify パッケージのデフォルトのエクスポートを使用している場合は、名前付きエクスポートの使用に移行する必要があります。例えば:
- import Amplify from 'aws-amplify';
+ import { Amplify } from 'aws-amplify'
- import Analytics from '@aws-amplify/analytics';
+ import { Analytics } from '@aws-amplify/analytics';
// or better
+ import { Analytics } from 'aws-amplify';
- import Storage from '@aws-amplify/storage';
+ import { Storage } from '@aws-amplify/storage';
// or better
+ import { Storage } from 'aws-amplify';
データストア述語の構文が変更され、 DataStore.query
、 DataStore.save
、 DataStore.delete
、およびDataStore.observe
インターフェイスに影響します。例えば:
- await DataStore.delete(Post, (post) => post.status('eq', PostStatus.INACTIVE));
+ await DataStore.delete(Post, (post) => post.status.eq(PostStatus.INACTIVE));
- await DataStore.query(Post, p => p.and( p => [p.title('eq', 'Amplify Getting Started Guide'), p.score('gt', 8)]));
+ await DataStore.query(Post, p => p.and( p => [p.title.eq('Amplify Getting Started Guide'), p.score.gt(8)]));
npm install -g @aws-amplify/cli
amplify codegen models
Storage.list
maxKeys
パラメーターの名前がpageSize
に変更され、結果リストを含む新しい戻り値の型が追加されました。例えば:
- const photos = await Storage.list('photos/', { maxKeys: 100 });
- const { key } = photos[0];
+ const photos = await Storage.list('photos/', { pageSize: 100 });
+ const { key } = photos.results[0];
再開可能をオンにしたStorage.put
バケット名を含まないようにキーを変更しました。例えば:
- let uploadedObjectKey;
- Storage.put(file.name, file, {
- resumable: true,
- // Necessary to parse the bucket name out to work with the key
- completeCallback: (obj) => uploadedObjectKey = obj.key.substring( obj.key.indexOf("/") + 1 )
- }
+ let uploadedObjectKey;
+ Storage.put(file.name, file, {
+ resumable: true,
+ completeCallback: (obj) => uploadedObjectKey = obj.key
+ }
Analytics.record
入力として文字列を受け入れなくなりました。例えば:
- Analytics.record('my example event');
+ Analytics.record({ name: 'my example event' });
JS
エクスポートは、それに含まれる関数をエクスポートするために@aws-amplify/core
から削除されました。
Amplify.Auth
、 Amplify.Cache
、およびAmplify.ServiceWorker
への呼び出しはサポートされなくなりました。代わりに、コードでは名前付きエクスポートを使用する必要があります。例えば:
- import { Amplify } from 'aws-amplify';
- Amplify.configure(...);
- // ...
- Amplify.Auth.signIn(...);
+ import { Amplify, Auth } from 'aws-amplify';
+ Amplify.configure(...);
+ // ...
+ Auth.signIn(...);
@react-native-community/netinfo
@react-native-async-storage/async-storage
// React Native
yarn add aws-amplify amazon-cognito-identity-js @react-native-community/netinfo @react-native-async-storage/async-storage
npx pod-install
// Expo
yarn add aws-amplify @react-native-community/netinfo @react-native-async-storage/async-storage
AWS.credentials
とAWS.config
Amplify JavaScript には存在しません。[email protected]
、aws-sdk-js のバージョン 3 を優先して[email protected]
から削除されました。 aws-sdk-js-v3 はモジュール形式でインポートされるため、Amplify でサポートされていない AWS サービスに依存している場合は、aws-sdk-js-v3 に移行することをお勧めします。aws-sdk-js-v3 に移行できない場合、または [email protected] に依存できない場合は、それを個別にインポートする必要があります。
Amplify JS アプリケーション内でエクスポートされたパスを使用している場合 (例: import from "@aws-amplify/analytics/lib/Analytics"
)、これは機能しなくなり、サポートされなくなります。名前付きインポートに変更する必要があります。
import { Analytics } from 'aws-amplify' ;
カテゴリをAmplify.<Category>
として使用している場合、これは機能しなくなるため、使用する必要があるカテゴリをインポートすることをお勧めします。
import { Auth } from 'aws-amplify' ;
DataStore への貢献と DataStore の仕組みの詳細については、DataStore のドキュメントを参照してください。