Amazon CodeCommit per gestire un repository privato di tipo Git
da Massimo Della Rovere · pubblicato il 22 maggio, 2017 · modificato il 5 giugno, 2017

Tramite questo servizio è possibile gestire un progetto Git in un repository privato. Il servizio di CodeCommit messo a disposizione di Amazon è autogestito, scalabile e ridondante, quindi non ci dobbiamo preoccupare di nessuna configurazione che riguarda macchine server e software correlato. Sono sempre assicurate delle alte performance e i dati vengono memorizzati nel cloud in maniera criptata.

CodeCommit

L’utilizzo del servizio è semplicissimo, basta selezionare il servizio CodeCommit dal gruppo dei servizi che riguardano il Developer Tools e creare il primo repository. Da questo momento in avanti è come utilizzare GitHub però in ambiente privato e con la garanzia di un livello di sicurezza molto alto. Per accedere al primo repository bisogna creare un account IAM con l’autorizzazione adeguata al servizio di CodeCommit.

Nella creazione di un repository è sufficiente indicare un nome e una descrizione, poi in base alla regione geografica in cui si è scelto di operare si avrà a disposizione un endpoint che potremmo utilizzare con Git per eseguire il push and pull. Per accedere al repository bisogna utilizzare una connessione protetta e avere creato un utente IAM con le autorizzazioni necessarie. (a seguire vi indico le policy).

Autenticazione

Se avete già un utente IAM potete aggiungere le policy e la chiave di connessione SSH direttamente al profilo, altrimenti createne uno nuovo. Una volta selezionato il profilo IAM andate nella scheda (permissions) e aggiungete la standard policy chiamata AWS Code Commit Power User. Una volta aggiunta la policy andate nella sezione Security credentials e cercata la sezione SSH key for AWS Commit e HTTPS Git credentials.

Dato che con CodeCommit avete due metodi di autenticazione potete scegliere tra una connessione SSH e una HTTPS. Nel primo caso dovete creare una chiave privata e pubblica sul vostro PC e poi eseguire l’upload della chiave pubblica nel profilo IAM. Se invece volete usare HTTPS sarà Amazon a crearvi un utente e una password.

# ssh-keygen

scrivere /home/{username}/.ssh/codecommit_rsa
alla fine del comando vi troverete due file in .ssh/

codecommit_rsa
codecommit_rsa.pub

// La chiave pubblica deve essere inserita dentro
// account IAM con il pulsante upload SSH Key

# cat ~/.ssh/codecommit_rsa.pub

// Mentre la chiave privata va specificata in 
// un file chiamato config da creare in .ssh/

# vi ~/.ssh/config

Host git-codecommit.*.amazonaws.com
User APKAEIBAERJR2EXAMPLE
IdentityFile ~/.ssh/codecommit_rsa

// Cambiare i permessi del file config
// in modo da eseguire correttamente SSH

chmod 600 ~/.ssh/config

Se usate un sistema operativo diverso o riscontrate qualche problema nella creazione della chiave vi consiglio la documentazione ufficiale di CodeCommit. In ogni caso vi sconsiglio vivamente di associare le credenziali al vostro account root, usate sempre un account IAM con privilegi specifici e mai assoluti come un full access.

Il primo repository

Adesso che abbiamo tutto il necessario creiamo il nostro primo repository con il nome che volete ed eseguiti dal vostro PC il comando di (clone) indicando come endpoint il valore specificato da Amazon dopo la creazione del repository. Se la connessione va a buon fine provate a caricare un progetto che avete ed eseguite il push. A questo punto potete vedere le funzioni messe a disposizione nella management console.

Come potete notare è possibile eseguire le funzioni classiche di navigazione tra i file e la visualizzazione del sorgente con syntax highlighting. In verità io non uso molto la parte di backend che riguarda la console, infatti eseguo tutte le funzioni di navigazione, modifica e cancellazione sul mio client e uso CodeCommit solo come puro server Git.

Gestione de Trigger

Una cosa molto interessante di questo servizio è quella di poter creare dei trigger in modo da essere avvisati con delle notifiche di Amazon SNS o con l’esecuzione di funzioni Lambda su alcuni eventi che succedono nel repository. Specialmente con il trigger collegato ad una funzione Lamba è possibile fare cose molto interessanti. Un altro vantaggio del servizio è l’integrazione con CodeDeploy che ci permette non solo il controllo del versioning ma di poter distribuire automaticamente il software.

Guida completa su AWS

Questo articolo appartiene ad una serie di pubblicazioni che costituiscono una guida completa dedicata agli Amazon Web Services. Molti servizi che trattiamo in questo blog vengono anche spiegati con dei video che trovate nel nostro canale youtube. Se volete seguire questo percorso didattico iscrivetevi alla community Cloud AWS.

1 Commento

  1. Già uso questo servizio da diverso tempo, quoto quello che hai riportato in community, manca la messaggistica privata, non sarebbe male avere una funzione tipo WorkDocs anche per il codice. Ancora non ho avuto modo di provare CodeCommit come strumento di deploy automatico, mi devo documentare o al massimo aspettare un'altro tuo tutorial.

condividi