What is AWS amplify?

Udvikl Apps med AWS: En Komplet Guide

12/12/2022

Rating: 4.39 (3938 votes)

Indholdsfortegnelse

Introduktion til App-udvikling med AWS

At udvikle mobile og webapplikationer i dag kræver en robust og skalerbar infrastruktur. Amazon Web Services (AWS) tilbyder en omfattende suite af værktøjer og tjenester, der gør det nemmere end nogensinde at bygge, deployere og administrere dine applikationer. Især AWS Amplify er blevet et nøgleelement for mange udviklere, der ønsker at skabe fuldstack applikationer med en problemfri oplevelse fra frontend til backend. Denne guide vil tage dig igennem de essentielle skridt og koncepter, du skal kende for at udnytte AWS's potentiale til din app-udvikling.

How to develop an app using AWS?

Hvad er AWS Amplify?

AWS Amplify er en komplet løsning designet til at hjælpe frontend web- og mobiludviklere med at bygge, forbinde og hoste fuldstack applikationer på AWS. Det giver dig fleksibiliteten til at udnytte det brede spektrum af AWS-tjenester, efterhånden som dine behov udvikler sig. Amplify er bygget op omkring flere kerneprodukter, der kan arbejde uafhængigt af hinanden:

  • Amplify CLI: Et kommandolinjeværktøj, der konfigurerer alle de nødvendige backend-tjenester til din applikation. Det simplificerer processen med at opsætte ting som autentificering, databaser, fillagring og meget mere.
  • Amplify Libraries: Klientbiblioteker, der gør det muligt at integrere almindelige brugsscenarier som autentificering, datahåndtering og fillagring ved at forbinde din frontend-app til dine backend-ressourcer.
  • Amplify Studio: Et visuelt udviklingsmiljø, der lader dig bygge din fuldstack web- og mobilapplikation på en intuitiv måde. Du kan konvertere designs fra værktøjer som Figma til genbrugelige kodekomponenter.
  • Amplify UI Components: UI-biblioteker til populære frontend-frameworks som React, React Native, Angular, Vue og Flutter, der gør det nemt at bygge en konsistent brugergrænseflade.
  • Amplify Hosting: En AWS-tjeneste, der tilbyder en Git-baseret workflow for kontinuerlig implementering og hosting af fuldstack webapplikationer.

Amplify gør det muligt at fokusere på din applikations frontend og kernefunktionalitet, mens AWS håndterer den underliggende infrastruktur.

Hvorfor bruge AWS til mobil app-udvikling?

AWS tilbyder en række markante fordele for mobil app-udvikling:

  • Skalerbarhed: AWS's cloud-infrastruktur kan automatisk skalere op eller ned baseret på din applikations trafik og behov, hvilket sikrer optimal ydeevne og omkostningseffektivitet.
  • Bredt udvalg af tjenester: Fra databaser (RDS, DynamoDB), serverløse funktioner (Lambda), AI/ML-tjenester til IoT og meget mere, AWS har en løsning til næsten ethvert tænkeligt behov.
  • Pålidelighed og sikkerhed: AWS har et af de mest modne og sikre cloud-økosystemer globalt, med strenge sikkerhedsforanstaltninger og høj tilgængelighed.
  • Global Rækkevidde: AWS har datacentre over hele verden, hvilket giver dig mulighed for at deployere din applikation tæt på dine brugere og reducere latenstid.
  • Innovationshastighed: AWS investerer konstant i nye teknologier og tjenester, hvilket giver dig adgang til de nyeste værktøjer til at forbedre din applikation.

Med Amplify kan du yderligere accelerere din udviklingsproces. Du kan oprette en forenet backend til dine iOS-, Android-, Flutter-, web- og React Native-apps. Når Amplify er konfigureret, vil din projekt have både realtids- og offline-funktionalitet. Amplify Studio kan desuden hjælpe med at bygge rige brugergrænseflader ved at konvertere designs fra Figma til genbrugelige kodekomponenter, hvilket sparer tusindvis af timer med kodning.

Why should you use AWS for mobile app development?
In this article, we’ll discuss four developer use cases for AWS tools specific to building and improving mobile applications in addition to speeding up overall development time. 1. Create new mobile app prototypes in minutes Are you planning to launch a new mobile app and want to spin up a prototype in minutes?

Hvordan får man AWS-legitimationsoplysninger til din app?

For at din app kan interagere med AWS-tjenester, skal den have de korrekte legitimationsoplysninger. AWS Cognito Identity er en credentials provider, der gør det muligt for din app at få adgang til AWS-tjenester uden at skulle indsætte private legitimationsoplysninger direkte i din applikations kode. Dette er en kritisk sikkerhedsforanstaltning.

Processen involverer typisk følgende trin:

  1. Opret en Identitetspool i Cognito: En identitetspool er en samling af brugeridentitetsdata, der er specifikke for din AWS-konto. Den giver konfigurerbare IAM-roller, der bestemmer, hvilke AWS-tjenester dine brugere har adgang til.
  2. Log ind på Cognito Console: Naviger til Amazon Cognito-konsollen.
  3. Administrer Føderede Identiteter: Klik på "Manage Federated Identities".
  4. Opret en ny identitetspool: Klik på "Create new identity pool".
  5. Navngiv din identitetspool: Indtast et navn for din pool.
  6. Tillad adgang for ikke-autentificerede identiteter: Marker afkrydsningsfeltet for at tillade adgang for brugere, der ikke er logget ind. Dette er ofte nyttigt for at give anonym adgang til visse funktioner.
  7. Opret Pool: Klik på "Create Pool".
  8. Tillad Roller: Klik på "Allow" for at oprette to standard IAM-roller: én for autentificerede brugere og én for ikke-autentificerede brugere. Disse roller definerer tilladelserne.

For at integrere Cognito Identity med din app skal du typisk videregive din credentials provider-objekt til konstruktøren af den AWS-klient, du bruger. Her er et eksempel på, hvordan det kan se ud i Android (Java/Kotlin):

CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider( getApplicationContext(), "DINIDENTITYPOOLID", /* Erstat med din Identity Pool ID */ Regions.USEAST1 /* Erstat med din Identity Pool region */ ); // Nu kan du bruge credentialsProvider med AWS-klienter // F.eks. AmazonS3 s3 = new AmazonS3Client(credentialsProvider); 

Husk at erstatte DINIDENTITYPOOLID og Regions.USEAST1 med dine specifikke værdier.

How do I transfer data from AWS to Amazon S3?
Set up an AWS Transfer Family web app to enable a simple interface for transferring data to and from Amazon S3 via a web browser. Learn how to use the face recognition features in Amazon Rekognition using the AWS console. Learn how to create an on-demand backup job of an Amazon EBS volume.

Brug af GraphQL med AWS Amplify

Amplify understøtter GraphQL, en data-sprog udviklet til at hente data fra API'er på en effektiv måde. GraphQL giver klienten mulighed for at specificere præcis, hvilke data den har brug for, og i hvilket format, hvilket reducerer overflødig dataoverførsel. Med Amplify kan du definere et GraphQL-skema, der bruges til at provisionere backend-ressourcer, gemme data lokalt, synkronisere til en cloud-database og modtage opdateringer via realtids-abonnementer.

Fordele ved GraphQL i Amplify:

  • Effektiv datahentning: Hent kun de data, du har brug for.
  • Stærkt typesystem: Sikrer dataintegritet og forbedrer udvikleroplevelsen.
  • Realtids-abonnementer: Modtag øjeblikkelige opdateringer, når data ændres.
  • Udviklerværktøjer: Amplify Studio og CLI integrerer problemfrit med GraphQL.

For at komme i gang med GraphQL i Amplify, kan du definere dit skema og lade Amplify CLI provisionere de nødvendige ressourcer, typisk en Amazon DynamoDB-tabel, der er eksponeret via AWS AppSync.

How to develop an app using AWS?
To develop your app using AWS, you must obtain AWS credentials with Amazon Cognito Identity, which is a credentials provider. By using it, you will be able to access the services without having to insert private credentials in your application's code. To get AWS credentials, you must first create an identity pool.

Tabel: Sammenligning af Amplify-komponenter

KomponentBeskrivelsePrimær Anvendelse
Amplify CLIKommandolinjeværktøj til backend-konfigurationOpsætning af cloud-ressourcer
Amplify LibrariesKlientbiblioteker til frontend-integrationForbindelse af app til backend (Auth, Data, Storage)
Amplify StudioVisuelt udviklingsmiljøHurtig prototyping, UI-bygning, backend-konfiguration
Amplify UI ComponentsForudbyggede UI-komponenterHurtig UI-udvikling for populære frameworks
Amplify HostingFuldt administreret hostingCI/CD, deployment af webapps

Dataoverførsel fra AWS til Amazon S3

Amazon S3 (Simple Storage Service) er en objektlagringstjeneste, der er ideel til at gemme og hente enhver mængde data, når som helst, hvor som helst. Hvis du har data i andre AWS-tjenester, eller hvis du vil uploade filer til din app, er S3 ofte den foretrukne løsning. Amplify Libraries giver nemme måder at interagere med S3 på, for eksempel til fil-uploads og downloads.

Du kan konfigurere S3 som en backend-ressource ved hjælp af Amplify CLI. Derefter kan du bruge Amplify Storage-biblioteket i din frontend-kode til at uploade billeder, dokumenter eller andre filer direkte til din S3-bucket. Tilladelserne til, hvem der kan læse og skrive til S3, styres typisk via IAM-rollerne, der er forbundet med din Cognito Identity Pool.

Why should you use AWS amplify for mobile app development?
With Mobile Hub, you can accelerate your app development and deliver a high-quality product to your users. AWS Amplify is a development framework that makes it easy to build scalable and secure mobile applications. It provides a set of libraries, UI components, and tools that allow you to quickly develop and deploy your app.

Ofte Stillede Spørgsmål (FAQ)

Hvad er forskellen på Amplify Gen 1 og Gen 2?
Amplify Gen 2 er en nyere version, der introducerer et data-centreret tilgang til backend-udvikling med fokus på TypeScript og en forbedret udvikleroplevelse. Mens Gen 1 er mere baseret på CLI-kommandoer, giver Gen 2 dig mulighed for at definere din backend deklarativt i kode.
Kan jeg bruge Amplify med eksisterende AWS-ressourcer?
Ja, hvis du allerede har AWS-ressourcer som Cognito, S3 eller andre, kan du bruge Amplify Studio til at integrere dem med dit Amplify-projekt eller importere eksisterende ressourcer.
Hvordan håndterer Amplify offline-funktionalitet?
Amplify Libraries, især Data-kategorien, bruger lokale datalagre (f.eks. IndexedDB i browsere eller SQLite på mobile enheder) til at cache data. Når der er en netværksforbindelse, synkroniseres de lokale ændringer automatisk med cloud-databasen (typisk DynamoDB via AppSync).
Er AWS Amplify gratis?
Selve Amplify-værktøjerne (CLI, Libraries, Studio) er gratis. Du betaler dog for de underliggende AWS-tjenester, som din app bruger (f.eks. API Gateway, Lambda, DynamoDB, S3, Cognito). AWS tilbyder en generøs gratis niveau for mange af disse tjenester, hvilket gør det muligt at komme i gang uden omkostninger.

Konklusion

AWS Amplify forenkler processen med at bygge og hoste moderne, fuldstack applikationer. Ved at udnytte tjenester som Cognito Identity, S3 og GraphQL gennem Amplify's CLI, Libraries og Studio, kan udviklere fokusere på at skabe værdi for deres brugere i stedet for at bekymre sig om kompleks infrastruktur. Uanset om du bygger en simpel mobilapp eller en skalerbar webplatform, tilbyder AWS og Amplify de værktøjer, du behøver for at lykkes.

Hvis du vil læse andre artikler, der ligner Udvikl Apps med AWS: En Komplet Guide, kan du besøge kategorien Teknologi.

Go up