Funções Ativadas pelo OBS

V1.0 – Julho 2024

Versão Autor Descrição
V1.0 – 2024-07-04 Diogo Hatz d50037923 Versão Inicial
V1.0 – 2024-07-04 Wisley da Silva Paulo 00830850 Revisão do Documento

Objetivo

Este documento objetiva apresentar os procedimentos necessários para a criação de uma função no serviço serverless FunctionGraph da Huawei Cloud com ativação por meio de upload de novos objetos em buckets do OBS.

Agency

Para delegar permissões do serviço de object storage (OBS) para o FunctionGraph, faz-se necessário criar uma agency com permissões sobre o OBS. Navegue até o serviço IAM no console da Huawei Cloud e clique na página “Agencies”. Clique para criar uma agency em “Create Agency”.

Dê um nome para a agency, selecione o tipo de agency como “Cloud Service” e selecione o serviço FunctionGraph. Clique em “Next” para avançar.

Delegue permissões de “OBS ReadOnlyAccess” para a agency e clique em “Next” e, então, em “OK” para concluir.

FunctionGraph

Acesse o serviço FunctionGraph no console da Huawei Cloud e navegue até a página Functions > Function List. Clique em “Create Function”.

Selecione a opção “Create from scratch”, dê um nome para a função, selecione o runtime em que a função será executada e selecione a agency criada no item 2.0 deste documento.

Tendo criada a função, clique em “Create Trigger” para criar um trigger para a função ser ativada.

Selecione o Trigger Type como sendo “Object Storage Service (OBS)”, selecione o bucket desejado e o Event como “ObjectCreated”, para que a função seja ativada toda vez que um novo objeto aparecer no bucket em questão. Também é possível configurar um prefixo e um sufixo dos objetos específicos que irão acionar a função, configurando um Prefix ou Suffix.

Tendo criado o trigger, agora basta importar o código que será executado pela função em Code Source, como APIs.

Também é possível adicionar dependências e bibliotecas third-party navegando até a parte de baixo do painel da função.

Exemplo

Neste exemplo, uma função em Python foi escrita para realizar uma requisição em um servidor web rodando em uma ECS toda vez que um novo objeto aparecer no bucket definido no item 3.0 deste documento.

Realizando o upload de um objeto no bucket definido:

Resultado no listener do servidor:

Referências