Обратите внимание: выпущена версия aws-amplify 6. Если вы ищете руководство по обновлению, нажмите здесь
AWS Amplify предоставляет декларативный и простой в использовании интерфейс для различных категорий облачных операций. AWS Amplify хорошо сочетается с любым рабочим процессом внешнего интерфейса на основе JavaScript и React Native для мобильных разработчиков.
Наша реализация по умолчанию работает с Amazon Web Services (AWS), но AWS Amplify спроектирован так, чтобы быть открытым и подключаемым для любого пользовательского бэкэнда или сервиса.
Категория | Поставщик AWS | Описание |
---|---|---|
Аутентификация | Амазон Когнито | API и стандартные блоки для создания возможностей аутентификации. |
Аналитика | Амазон Пинпойнт | Собирайте данные аналитики для своего приложения, включая отслеживание пользовательских сеансов. |
ОТДЫХ API | API-шлюз Amazon | Подписание Sigv4 и аутентификация AWS для шлюза API и других конечных точек REST. |
ГрафQL API | Синхронизация приложений AWS | Взаимодействуйте с конечными точками GraphQL или AWS AppSync. |
хранилище данных | Синхронизация приложений AWS | Модель программирования для общих и распределенных данных с простой онлайн-/офлайн-синхронизацией. |
Хранилище | Амазонка S3 | Управляет контентом в общедоступных, защищенных и частных хранилищах. |
Гео (предварительная версия для разработчиков) | Служба определения местоположения Amazon | Предоставляет API и компоненты пользовательского интерфейса для карт и поиска местоположений для веб-приложений на основе JavaScript. |
Push-уведомления | Амазон Пинпойнт | Позволяет интегрировать push-уведомления в ваше приложение с поддержкой таргетинга Amazon Pinpoint и управления кампаниями. |
Взаимодействия | Амазон Лекс | Создавайте диалоговых ботов на основе технологий глубокого обучения. |
ПабСаб | AWS Интернет вещей | Обеспечивает связь с облачным промежуточным программным обеспечением, ориентированным на сообщения. |
Интернационализация | --- | Легкое решение для интернационализации. |
Кэш | --- | Предоставляет общий кэш LRU для разработчиков JavaScript для хранения данных с настройками приоритета и срока действия. |
Прогнозы | Различный* | Подключите свое приложение к сервисам машинного обучения, таким как НЛП, компьютерное зрение, TTS и т. д. |
AWS Amplify доступен как aws-amplify
на npm.
Чтобы начать работу, выберите свою платформу на главной странице «Начало работы».
Если вы используете экспорт по умолчанию из любого пакета 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]
был удален из [email protected]
в пользу версии 3 aws-sdk-js. Мы рекомендуем перейти на aws-sdk-js-v3, если вы полагаетесь на сервисы AWS, которые не поддерживаются Amplify, поскольку 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.