Ratnopam Chakrabarti é um desenvolvedor de software que trabalha atualmente para a Ericsson Inc. Ele tem se concentrado em IoT, tecnologias máquina a máquina, carros conectados e domínios de cidades inteligentes por um bom tempo. Ele adora aprender novas tecnologias e colocá-las em prática. Quando não está trabalhando, gosta de passar o tempo com seu filho de 3 anos.

Ratnopam Chakrabarti

Impressionante AWS (Amazon Web Services)

Em Partes 1 e Parte 2 da série, falei principalmente sobre o Couchbase. Nesta parte, vou me concentrar no AWS e, mais especificamente, na API AWS Reckognition.

Criar um bucket S3

Como pré-requisito para executar o aplicativo photogallery, você precisa criar um bucket s3 usando sua conta do Amazon Web Services. Você pode usar a opção modelo de cloudformation Mencionei na Parte 1 da série para criá-lo automaticamente; caso contrário, você sempre poderá criá-lo manualmente usando o Console da AWS.

Política de balde

Tanto o Couchbase quanto o S3 usam o conceito de "bucket" para armazenar dados. Tentarei mencionar o contexto adequado ao me referir ao termo "bucket" - se é um bucket do Couchbase ou um bucket do S3. Tente não se confundir entre os dois, embora o objetivo subjacente de um "bucket" seja armazenar dados no Couchbase e no S3.

Aqui, estou me referindo a um bucket S3.

Para permitir que os usuários armazenem imagens em um bucket s3, precisamos criar uma política de bucket. Por padrão, o acesso a um bucket s3 é privado. Para substituir a política padrão, criamos a seguinte política que permite que todos os usuários armazenem objetos no s3 e busquem objetos do s3.

No meu caso, o nome do bucket criado é la-image-tagger-chakrar27.

Análise de imagens usando reconhecimento de imagem

No final de 2016, a AWS lançou o Rekognition, um serviço de processamento de imagens que pode analisar uma imagem e inferir informações úteis sobre ela. Para obter um estudo detalhado, consulte a documentação do AWS Rekognition aqui.

No contexto do aplicativo de galeria de fotos, usei o detectLabels() API que o AWS Rekognition oferece. Ele retorna um par de valores-chave de rótulos com pontuações de confiança. O trecho de código a seguir faz o truque:

O código acima chama a função detectLabels API e retorna um conjunto de rótulos com base na análise da imagem. Nesse caso, limitei o número máximo de rótulos a 5 e a porcentagem mínima de confiança a 50%.

Depois que os rótulos são retornados, eles são analisados usando JSON e colocados em etiquetas array. Quando isso for feito, o salvar() é chamada para armazenar o documento no bucket do Couchbase.

O Rekognition oferece algumas APIs interessantes, como detectFaces() e compareFaces() que abrem um espectro totalmente novo de casos de uso; no entanto, por enquanto, eu me limitei ao simples detectLabels() API para começar.

Executar o aplicativo

Para executar o aplicativo de nó photogallery, você precisa ter a chave de acesso S3 e as chaves secretas disponíveis. Você pode usar o módulo "dotenv" do node para armazená-las em um arquivo chamado .env em seu código-fonte. Se fizer isso, você deve adicionar o arquivo .env ao .gitignore:

Você não quer expor as chaves de acesso do AWS ao mundo, a menos que esteja em um clima extremamente filantrópico. Eu, no entanto, prefiro passar esses valores como uma variável de ambiente. Veja a seguir como executar o aplicativo node usando variáveis de ambiente:

Esta postagem faz parte do Programa de Redação da Comunidade Couchbase

Autor

Postado por Laura Czajkowski, gerente da comunidade de desenvolvedores, Couchbase

Laura Czajkowski é a Snr. Developer Community Manager da Couchbase, supervisionando a comunidade. Ela é responsável pelo nosso boletim informativo mensal para desenvolvedores.

Deixar uma resposta