Como compactar imagens automaticamente no S3 com Lambda
Um dos maiores custos da AWS é a largura de banda — ela é cara, especialmente se o seu aplicativo depende da exibição de conteúdo. Compactar as imagens que você veicula pode reduzir sua conta significativamente, além de economizar dinheiro em custos de armazenamento.
Por que diminuir o tamanho?
A maneira mais simples de diminuir a largura de banda é diminuir o tamanho dos objetos que você está servindo com compactação e codificação. Ele também pode reduzir seus custos de armazenamento, o que pode economizar muito dinheiro ao longo do tempo. JPEG possui qualidade embutida no padrão; JPEGs codificados a 70% ou mais ainda são nítidos e quase indistinguíveis da qualidade de 100% (no qual nenhum JPEG destinado à distribuição na web deve ser codificado).
Além disso, se você estiver permitindo que os usuários enviem suas próprias imagens e não as estiver processando de alguma forma, você estará se abrindo para abusos de usuários que enviem vários gigabytes de fotos gigantescas e diminuindo a velocidade abaixo do seu aplicativo.
A AWS não tem uma ferramenta incorporada para fazer isso, então você terá que usar Lambda, o serviço da AWS para executar código em resposta a gatilhos sem provisionar servidores. Se você quiser codificar vídeo também, a AWS tem um serviço para isso, pois é uma tarefa que consome mais CPU.
Primeiros passos
Vá para o Lambda Management Console e clique em “ Criar função. ”
Felizmente, já existe um aplicativo pré-construído no repositório de aplicativos sem servidor da Lambda que pode lidar com a compactação básica de imagens e é perfeito para essa tarefa. Selecione “ Procurar repositório de aplicativos sem servidor. ”
Em seguida, pesquise “ compactar ” por evanchiu:
Este aplicativo usa transformações, que possui um balde S3 e observa-o para arquivos carregados. Quando um arquivo é carregado, a função é executada, compacta a imagem e a coloca em um intervalo de destino.
O depósito de entrada é criado pela função, mas o depósito de saída precisará ser criado no S3 Management Console:
Então, de volta ao Lambda Console, digite o nome do seu intervalo de destino nas configurações do aplicativo e, a seguir, dê um nome para o intervalo de origem que será criado. Certifique-se de que isso ainda não exista, pois o aplicativo deve ser o proprietário do intervalo.
Você pode especificar a qualidade JPEG aqui. Embora 70% ou mais deva ser um bom número, você pode fazer seus próprios testes para ver o que funciona melhor para seu aplicativo.
Clique em “ Implementar, ” e o aplicativo deve estar instalado e funcionando. Em alguns minutos, você verá o intervalo de origem recém-criado de propriedade do aplicativo. Se você carregar uma imagem nele, verá rapidamente a imagem compactada criada no intervalo de destino.
Se desejar modificar o aplicativo ou adicionar sua própria funcionalidade, você pode fazer isso clicando no link “ Funções ” guia à direita:
Aqui, você também pode modificar os gatilhos que fazem com que a função seja executada e editar as configurações definidas ao criar a função.
Via: How to Geek
Nenhum comentário