Articoli
Tutorial
Guide interattive
Introduzione a ImageLabeller
ImageLabeller è una semplice applicazione demo che utilizza l'apprendimento automatico per applicare etichette alle immagini. Utilizza AWS Lambda, AWS DynamoDB, AWS S3, AWS SageMaker, AWS API Gateway, AWS CloudWatch e AWS CloudFormation, ed è scritto in Go e Python. Questa guida spiega come utilizzare gli strumenti Atlassian Open DevOps per distribuire e monitorare un sottoinsieme di questi componenti.
Architettura di ImageLabeller
![Diagramma](https://wac-cdn.atlassian.com/dam/jcr:5e293153-045e-4662-b93b-8750ba15da25/imageClassificationApp.png?cdnVersion=2079)
Come funziona
Un utente chiama l'AWS Lambda SubmitImage, passando un URL immagine valido come parametro. SubmitImage scarica l'immagine, la carica in un bucket AWS S3 opendevops-images-
L'AWS Lambda InvokeLabeller presenta un trigger di eventi AWS DynamoDB. InvokeLabeller scarica l'immagine corrispondente da open-devops-images-
L'utente chiama l'AWS Lambda GetImageLabel, passando il token dell'ID immagine come parametro. GetImageLabel cerca le etichette associate al token dell'ID immagine in ImageLabels e le restituisce all'utente. L'utente riceve un'etichetta NOT_CLASSIFIED se il modello AWS SageMaker non ha completato l'elaborazione di un'immagine.
ImageLabeller è distribuita in cinque ambienti: un ambiente di test in us-west-1, un ambiente di staging in us-east-2 e tre ambienti di produzione in us-west-2, us-east-1 e ca-central-1.
Componenti
I bucket AWS S3 e le tabelle AWS DynamoDB che fanno parte di ImageLabeller sono distribuiti utilizzando modelli AWS CloudFormation. Questa guida fornisce informazioni di configurazione CI/CD su come distribuire i bucket AWS S3. Il processo di distribuzione delle tabelle AWS DynamoDB è quasi identico e ti forniremo un esercizio da completare in autonomia.
In ImageLabeller sono presenti tre AWS Lambda: SubmitImage, InvokeLabeller e GetImageLabel. Questa guida fornisce informazioni di configurazione CI/CD su come distribuire SubmitImage. Il processo di distribuzione di GetImageLabel è quasi identico e puoi anche completarlo in autonomia.
InvokeLabeller è un AWS Lambda basato su Python e richiede un aggiornamento minore prima di poter essere pubblicato. Nello specifico, InvokeLabeller dipende dalla configurazione di AWS SageMaker, che viene eseguita tramite la console AWS.
I test di sistema inclusi nel progetto ImageLabeller testano ImageLabeller nel suo complesso. I test non vengono superati se qualche componente di ImageLabeller non è presente o non funziona come previsto. Le distribuzioni di SubmitImage, GetImageLabel e InvokeLabeller eseguono tutte i test di sistema come parte delle rispettive pipeline CI/CD.
Per la distribuzione iniziale di SubmitImage, GetImageLabel e InvokeLabeller è necessario commentare i passaggi di esecuzione dei test di sistema. Una volta che le distribuzioni sono state eseguite correttamente, puoi decommentare i passaggi di esecuzione dei test di sistema e ripetere la distribuzione.
Ordine di distribuzione dei componenti
Distribuisci manualmente il modello pre-addestrato di AWS SageMaker tramite la console AWS.
Distribuisci i repository dell'infrastruttura AWS.
- s3_infra
- dynamodb_infra
Distribuisci AWS Lambda.
- SubmitImage
- GetImageLabel
- InvokeLabeller
Distribuisci i test di sistema.
Distribuisci CloudWatchAlarms.
Condividi l'articolo
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.
![Illustrazione su Devops](https://wac-cdn.atlassian.com/dam/jcr:bd9d8b2c-ca36-444f-8595-719cb1990e64/Devops-community.png?cdnVersion=2079)
Community DevOps
![Illustrazione su Devops](https://wac-cdn.atlassian.com/dam/jcr:297108ea-d232-4368-af51-b53af230c4fe/Simulation-workshop.png?cdnVersion=2079)
Percorso di apprendimento DevOps
![Illustrazione di una mappa](https://wac-cdn.atlassian.com/dam/jcr:25f6330a-4191-408f-a4e5-2e24bfba67b4/Maturity-model.png?cdnVersion=2079)