注意aws-amplify 6 已發佈。如果您正在尋找升級指南,請按一下此處
AWS Amplify 提供跨不同類別的雲端操作的聲明式且易於使用的介面。 AWS Amplify 可以與任何基於 JavaScript 的前端工作流程和行動開發人員的 React Native 完美配合。
我們的預設實作與 Amazon Web Services (AWS) 搭配使用,但 AWS Amplify 設計為開放且可插入任何自訂後端或服務。
類別 | AWS 供應商 | 描述 |
---|---|---|
驗證 | 亞馬遜認知 | 用於建立身份驗證體驗的 API 和建置區塊。 |
分析 | 亞馬遜精確定位 | 收集應用程式的分析數據,包括追蹤使用者會話。 |
休息API | 亞馬遜 API 網關 | API 閘道和其他 REST 端點的 Sigv4 簽章和 AWS 驗證。 |
GraphQL API | AWS 應用程式同步 | 與您的 GraphQL 或 AWS AppSync 終端節點互動。 |
資料儲存 | AWS 應用程式同步 | 共享和分散式資料的程式設計模型,具有簡單的線上/離線同步。 |
貯存 | 亞馬遜S3 | 管理公共、受保護、私人儲存桶中的內容。 |
地理(開發者預覽版) | 亞馬遜定位服務 | 為基於 JavaScript 的 Web 應用程式提供地圖和位置搜尋的 API 和 UI 元件。 |
推播通知 | 亞馬遜精確定位 | 允許您將應用程式中的推播通知與 Amazon Pinpoint 定位和活動管理支援整合。 |
互動 | 亞馬遜萊克斯 | 創建由深度學習技術支援的對話機器人。 |
發布訂閱 | AWS物聯網 | 提供與基於雲端的面向訊息的中間件的連接。 |
國際化 | --- | 輕量級國際化解決方案。 |
快取 | --- | 為 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
。[email protected]
已從[email protected]
中刪除,取而代之的是 aws-sdk-js 版本 3。如果您依賴 Amplify 不支援的 AWS 服務,我們建議遷移到 aws-sdk-js-v3,因為 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 文檔