Flussi di lavoro in team con ambienti backend Amplify - AWS AmplifyHosting

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Flussi di lavoro in team con ambienti backend Amplify

L'implementazione di un feature branch consiste in un frontend e in un ambiente backend opzionale. Il frontend è creato e distribuito su una rete globale di distribuzione di contenuti (CDN), mentre il backend viene distribuito da Amplify Studio o dall'Amplify CLI suAWS. Per ulteriori informazioni su questo scenario di distribuzione, consultaNozioni.

Nota

Puoi riutilizzare facilmente gli ambienti backend Amplify nelle tue app Amplify. Per ulteriori informazioni, consulta Usa i backend Amplify in tutte le app.

Amplify Hosting implementa continuamente risorse di backend come le API GraphQL e le funzioni Lambda con le implementazioni dei feature branch. Puoi utilizzare i seguenti modelli di ramificazione per distribuire backend e frontend con Amplify Hosting.

Flusso di lavoro del ramo feature

  • Crea ambienti backend di progettazione, test e sviluppo con Amplify Studio o l'interfaccia a riga di comando di Amplify.

  • Mappa il backend prod sul ramo principale.

  • Mappa il backend del test sul ramo di sviluppo.

  • I membri del team possono utilizzare l'ambiente backend di sviluppo per testare i singoli rami di funzionalità.

  1. Installare l'interfaccia a riga di comando di Amplify per inizializzare un nuovo progetto Amplify.

    npm install -g @aws-amplify/cli
  2. Inizializzare un ambiente di back-end prod per il progetto. Se non disponi di un progetto, creare uno. Se non disponi di create-react-app un progetto, creare uno.

    create-react-app next-unicorn cd next-unicorn amplify init ? Do you want to use an existing environment? (Y/n): n ? Enter a name for the environment: prod ... amplify push
  3. Aggiungere gli ambienti di back-end test e dev.

    amplify env add ? Do you want to use an existing environment? (Y/n): n ? Enter a name for the environment: test ... amplify push amplify env add ? Do you want to use an existing environment? (Y/n): n ? Enter a name for the environment: dev ... amplify push
  4. Invia il codice a un repository Git di tua scelta (in questo esempio assumeremo che tu abbia inviato il push a main).

    git commit -am 'Added dev, test, and prod environments' git push origin main
  5. Visita Amplify nelAWS Management Console per vedere il tuo attuale ambiente di backend. Naviga di un livello superiore rispetto al breadcrumb per visualizzare un elenco di tutti gli ambienti di backend creati nella scheda Ambienti backend.

  6. Passa alla scheda Ambienti frontend e collega il tuo provider di repository e la filiale principale.

  7. Nella schermata delle impostazioni di build, scegli un ambiente di backend esistente per configurare la distribuzione continua con il ramo principale. Scegli prod dal menu a discesa e concedi il ruolo di servizio ad Amplify. Scegliere Save and deploy (Salva e distribuisci). Una volta completata la compilazione, si otterrà una distribuzione del ramo principale disponibile all'indirizzo https://main.appid.amplifyapp.com.

  8. Connect il ramo di sviluppo in Amplify (supponiamo che development e main branch siano gli stessi a questo punto). Scegliere l'ambiente di back-end test.

  9. Amplify è ora configurato. È possibile iniziare a lavorare su nuove funzionalità in un ramo feature. Aggiungere funzionalità di back-end utilizzando l'ambiente di back-end dev dalla workstation locale.

    git checkout -b newinternet amplify env checkout dev amplify add api ... amplify push
  10. Dopo avere terminato di lavorare sulla funzionalità, eseguire il commit del codice e creare una richiesta di pull da rivedere internamente.

    git commit -am 'Decentralized internet v0.1' git push origin newinternet
  11. Per vedere in anteprima quali saranno le modifiche, vai alla console di Amplify e collega il tuo ramo di funzionalità. Nota: se l'haiAWS CLI installato sul tuo sistema (non l'Amplify CLI), puoi connettere una filiale direttamente dal tuo terminale. È possibile reperire il proprio appid accedendo a App settings > General > AppARN (Impostazioni applicazione > Generali > ARNapp): arn:aws:amplify:<region>:<region>:apps/<appid>

    aws amplify create-branch --app-id <appid> --branch-name <branchname> aws amplify start-job --app-id <appid> --branch-name <branchname> --job-type RELEASE
  12. La funzionalità sarà disponibile all'indirizzo https://newinternet.appid.amplifyapp.com per essere condivisa con i colleghi. Se tutto appare corretto, unire PR al ramo develop.

    git checkout develop git merge newinternet git push
  13. Questo darà il via a una build che aggiornerà il backend e il frontend in Amplify con una distribuzione succursale su https://dev.appid.amplifyapp.com. È possibile condividere questo link con parti interessate interne affinché possano esaminare la nuova funzionalità.

  14. Elimina il tuo ramo di funzionalità da Git, Amplify e rimuovi l'ambiente di backend dal cloud (puoi sempre crearne uno nuovo in base a «amplify env checkout prod» ed eseguendo «amplify env add»).

    git push origin --delete newinternet aws amplify delete-branch --app-id <appid> --branch-name <branchname> amplify env remove dev

GitFlow flusso di lavoro

GitFlow utilizza due rami per registrare la cronologia del progetto. Il ramo principale tiene traccia solo del codice di rilascio e il ramo di sviluppo viene utilizzato come ramo di integrazione per nuove funzionalità. GitFlow semplifica lo sviluppo parallel isolando il nuovo sviluppo dal lavoro completato. Il nuovo sviluppo (come le funzionalità e le correzioni di bug non urgenti) viene svolto nei rami feature. Quando lo sviluppatore è sicuro che il codice sia pronto per il rilascio, il ramo feature viene ricollegato al ramo develop delle integrazioni. Gli unici commit al ramo principale sono le fusioni dei rami di rilascio e i rami hotfix (per correggere i bug di emergenza).

Lo schema seguente mostra una configurazione consigliata con GitFlow. Puoi seguire lo stesso processo descritto nella sezione relativa al flusso di lavoro del ramo feature di cui sopra.

Per sandbox sviluppatore

  • Ogni sviluppatore di un team crea un ambiente sandbox nel cloud che è separato dal computer locale. Ciò consente agli sviluppatori di lavorare in isolamento gli uni dagli altri senza sovrascrivere le modifiche degli altri membri del team.

  • Ogni filiale di Amplify ha il proprio backend. Ciò garantisce che Amplify utilizzi il repository Git come unica fonte di verità da cui implementare le modifiche, anziché affidarsi agli sviluppatori del team per il trasferimento manuale del backend o del front-end alla produzione dai computer locali.

  1. Installare l'interfaccia a riga di comando di Amplify per inizializzare un nuovo progetto Amplify.

    npm install -g @aws-amplify/cli
  2. Inizializza un ambiente di backend mary per il tuo progetto. Se non disponi di un progetto, creare uno. Se non disponi di create-react-app un progetto, creare uno.

    cd next-unicorn amplify init ? Do you want to use an existing environment? (Y/n): n ? Enter a name for the environment: mary ... amplify push
  3. Invia il codice a un repository Git di tua scelta (in questo esempio assumeremo che tu abbia inviato il push a main).

    git commit -am 'Added mary sandbox' git push origin main
  4. Connect il tuo repository > main ad Amplify.

  5. La console Amplify rileverà gli ambienti backend creati dall'Amplify CLI. Scegli Crea nuovo ambiente dal menu a discesa e concedi il ruolo di servizio ad Amplify. Scegliere Save and deploy (Salva e distribuisci). Una volta completata la compilazione, otterrai una distribuzione del ramo principale disponibile su https://main.appid.amplifyapp.com con un nuovo ambiente di backend collegato al ramo.

  6. Collega il ramo di sviluppo in Amplify (supponiamo che development e main branch siano gli stessi a questo punto) e scegli Crea nuovo ambiente. Una volta completata la compilazione, all'indirizzo https://develop.appid.amplifyapp.com sarà disponibile una distribuzione del ramo develop con un nuovo ambiente di back-end collegato al ramo.