注意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 文档