Como uma função aciona outra função com o IBM Cloud Functions?

2 min de leitura
Patrocinado
Imagem de: Como uma função aciona outra função com o IBM Cloud Functions?
Avatar do autor

Equipe TecMundo

@tec_mundo

A resposta rápida para encadear suas funções é usar uma sequência. Uma sequência é um tipo especial de ação que encadeia várias ações em uma série de ações. O resultado de cada uma delas é passado como um argumento para a próxima ação na sequência. Para criar uma sequência encadeando action_1 e action_2, você pode usar a interface de linha de comando (CLI), como a seguinte:

ibmcloud fn action create --sequence ,

Agora, quando a sequência é acionada, ela dispara action_1 e, em seguida, passa a saída de action_1 como a entrada para action_2.

No entanto, seu cenário pode ser um pouco mais complexo. Por exemplo, é possível que você deseje que a action_1 acione a action_2 várias vezes (uma para cada item em uma matriz), ou talvez você precise da action_1 para acionar três outras ações em paralelo. Para acionar diretamente uma função de outra, você pode usar o SDK do OpenWhisk, que está incluído no sistema de tempo de execução do JavaScript. Depois de solicitar o SDK, você pode simplesmente invoke (acionar) a ação desejada, fornecendo o nome e seus parâmetros. Um exemplo de como isso pode funcionar você vê neste padrão de código para processamento de imagens.

var openwhisk = require("openwhisk"); const ow = openwhisk() await Promise.all([     ow.actions.invoke({       actionName: "///",       params: { bucket: params.bucket, url: params.body, key: params.key }     }),     ow.actions.invoke({       actionName: "///",       params: { bucket: params.bucket, url: params.body, key: params.key }     })]);

Cada uma dessas duas ações será executada em paralelo. O SDK do OpenWhisk fornece várias outras opções para interagir com ações e gatilhos de seu código. Você pode aprender mais sobre o SDK na página do módulo npm, bem como ver um exemplo de como isso pode funcionar.

Você também pode encadear suas ações acessando o terminal HTTP fornecido, que é gerado para cada função criada no IBM Cloud Functions:

curl -u API-KEY -X POST https://us-east.functions.cloud.ibm.com/api/v1/namespaces/beemarie/actions/my_action?blocking=true

Por padrão, as funções podem ser acionadas com uma solicitação POST, mas podem também ser ativadas como ações da web, que podem ser evocadas por meio de qualquer um dos métodos HTTP: POST, GET, PUT, PATCH, DELETE, HEAD ou OPTIONS. Ações da web também podem ser acionadas por meio de qualquer aplicativo baseado na web e são associadas ao usuário que criou a ação, em vez de ao acionador da ação. Depois de transformar suas funções em ações da web, você poderá montá-las em uma API completa usando um gateway de API para expor suas APIs com segurança, suporte ao protocolo OAuth, limitação de taxa e suporte de domínio personalizado.

...

Quer ler mais conteúdo especializado de programação? Conheça a IBM Blue Profile e tenha acesso a matérias exclusivas, novas jornadas de conhecimento e testes personalizados. Confira agora mesmo, consiga as badges e dê um upgrade na sua carreira!

Como uma função aciona outra função com o IBM Cloud Functions?