ملاحظة: تم إصدار aws-amplify 6. إذا كنت تبحث عن إرشادات الترقية انقر هنا
توفر AWS Amplify واجهة تعريفية وسهلة الاستخدام عبر فئات مختلفة من العمليات السحابية. تتوافق AWS Amplify بشكل جيد مع أي سير عمل للواجهة الأمامية يعتمد على JavaScript وReact Native لمطوري الأجهزة المحمولة.
يعمل تطبيقنا الافتراضي مع Amazon Web Services (AWS)، ولكن AWS Amplify مصمم ليكون مفتوحًا وقابلاً للتوصيل لأي واجهة خلفية أو خدمة مخصصة.
فئة | مزود خدمة AWS | وصف |
---|---|---|
المصادقة | أمازون كوجنيتو | واجهات برمجة التطبيقات والكتل البرمجية لإنشاء تجارب المصادقة. |
التحليلات | أمازون بينبوينت | اجمع بيانات التحليلات لتطبيقك بما في ذلك تتبع جلسات المستخدم. |
واجهة برمجة تطبيقات REST | بوابة واجهة برمجة تطبيقات أمازون | توقيع Sigv4 ومصادقة AWS لبوابة API ونقاط نهاية REST الأخرى. |
واجهة برمجة تطبيقات GraphQL | أوس أبسينك | تفاعل مع نقطة (نقاط) نهاية GraphQL أو AWS AppSync الخاصة بك. |
مخزن البيانات | أوس أبسينك | نموذج برمجة للبيانات المشتركة والموزعة، مع مزامنة بسيطة عبر الإنترنت/دون الاتصال بالإنترنت. |
تخزين | أمازون إس 3 | يدير المحتوى في مجموعات التخزين العامة والمحمية والخاصة. |
الموقع الجغرافي (معاينة المطور) | خدمة تحديد الموقع من أمازون | يوفر واجهات برمجة التطبيقات ومكونات واجهة المستخدم للخرائط والبحث عن الموقع لتطبيقات الويب المستندة إلى JavaScript. |
دفع الإخطارات | أمازون بينبوينت | يتيح لك دمج إشعارات الدفع في تطبيقك مع استهداف Amazon Pinpoint ودعم إدارة الحملة. |
التفاعلات | أمازون ليكس | قم بإنشاء روبوتات محادثة مدعومة بتقنيات التعلم العميق. |
بوبسوب | أمازون إنترنت الأشياء | يوفر الاتصال مع البرامج الوسيطة الموجهة نحو الرسائل المستندة إلى السحابة. |
تدويل | --- | حل تدويل خفيف الوزن. |
مخبأ | --- | يوفر ذاكرة تخزين مؤقت LRU عامة لمطوري JavaScript لتخزين البيانات مع إعدادات الأولوية وانتهاء الصلاحية. |
التنبؤات | متنوع* | قم بتوصيل تطبيقك بخدمات التعلم الآلي مثل البرمجة اللغوية العصبية (NLP) ورؤية الكمبيوتر و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