Trabalhando na implementação do provedor OpenWhisk para Serverless, encontrei um desafio ao tentar acessar outras instâncias de plug-ins de dentro de meus plug-ins.
No plug- in pacote existente para gerenciar o empacotamento de um único artefato de função.
Na implementação do provedor AWS, a classe pode fazer referência direta ao módulo por meio de um caminho de arquivo local. https://github.com/serverless/serverless/blob/master/lib/plugins/aws/deployFunction/index.js#L9
O plugin OpenWhisk é um plugin de terceiros e não pode fazer isso.
No momento, estou trabalhando em torno disso iterando as instâncias do plug-in instaladas, a partir do gerenciador de plug-ins, mas isso depende do teste do macaco da instância para assumir que temos a instância correta.
https://github.com/serverless/serverless-ibm-openwhisk/blob/master/deployFunction/index.js#L15 -L16
Podemos adicionar algum método de API para me ajudar a encontrar plug-ins instalados por seu nome?
Identifique os plug-ins pelo nome exclusivo, que deve ser resolvido a partir da propriedade plugin.name
ou do nome do construtor sem letras maiúsculas.
Se dois plug-ins com o mesmo nome forem detectados, mostra a mensagem de descontinuação que, com a próxima versão principal, tal configuração irá lançar
Os plug-ins devem ser referenciados pelo nome na coleção serverless.plugins
e, por meio dela, acessíveis a outros plug-ins.
A resolução de nome e a atribuição de serlveress.plugins
devem acontecer no escopo da lógica pluginManager.addPlugin
: https://github.com/serverless/serverless/blob/5096534a80e211b947e59d7283cfdfdd1711e7ea/lib/classes/PluginManager.js#L93 -L122
@jthomas obrigado por abrir isso! 👍 Momento perfeito 🕐
No momento, estamos discutindo como podemos melhorar a arquitetura geral do plugin / UX.
É ótimo ter esse feedback sobre os pontos problemáticos atuais (envie mais se tiver mais alguma coisa). 💯
/ cc @ ac360 @nikgraf @eahefnawy @mthenw
De fato, um feedback muito bom! Garantimos que isso seja possível no futuro.
Eu atualizei a descrição principal com a proposta de implementação. Isso pode ser alcançado de forma bastante simples (eu acho), e o valor agregado é real
Comentários muito úteis
@jthomas obrigado por abrir isso! 👍 Momento perfeito 🕐
No momento, estamos discutindo como podemos melhorar a arquitetura geral do plugin / UX.
É ótimo ter esse feedback sobre os pontos problemáticos atuais (envie mais se tiver mais alguma coisa). 💯
/ cc @ ac360 @nikgraf @eahefnawy @mthenw