Como Funciona o Serviço OCI Functions
Descubra como o OCI Functions funciona quando você implanta uma função e quando chama uma função.
O que acontece quando você implanta uma função no OCI Functions?
Quando você tiver gravado o código de uma função e ele estiver pronto para implantação, você poderá usar um único comando da CLI do Fn Project para executar todas as operações de implantação em sequência:
- criar uma imagem do Docker com base na função
- fornecer uma definição da função em um arquivo func.yaml que inclui:
- o tempo máximo que a função pode executar
- a quantidade máxima de memória que a função pode consumir
- submeter a imagem ao registro Docker especificado
- fazer upload de metadados de função (incluindo as restrições de memória e tempo e um link para a imagem no registro do Docker) para o Servidor Fn
- adicionar a função à lista de funções mostradas na Console
O processo acima de implantar uma função no OCI Functions é mostrado no diagrama.
Observe que, depois que a imagem tiver sido submetida a upload para o registro do Docker, será sua responsabilidade atualizar a imagem. Por exemplo, quando há suporte para novas versões de idioma (para obter mais informações, consulte FDKs (Function Development Kits)).
O que Acontece quando Você Chama uma Função?
Você pode chamar uma função que implantou no OCI Functions:
- Da CLI do Fn Project.
- Dos SDKs do Oracle Cloud Infrastructure.
- De solicitações HTTP assinadas para o ponto final de chamada da função. Cada função tem um ponto final de chamada.
- Outros serviços do Oracle Cloud (por exemplo, acionados por um evento no serviço Events) ou por serviços externos.
Quando uma função é chamada pela primeira vez, o OCI Functions primeiro verifica a solicitação com o serviço IAM. Supondo que a solicitação passe verificações de autenticação e autorização, o OCI Functions então transmite a solicitação ao Servidor Fn, que usa a definição da função para:
- identificar a imagem do Docker da função a ser extraída do registro do Docker
- executar a função executando a imagem da função como um contêiner em uma instância de uma sub-rede associada ao aplicativo ao qual a função pertence
Quando a função está sendo executada dentro do contêiner, a função pode ler e gravar outros recursos e serviços em execução na mesma sub-rede (por exemplo, Database as a Service). A função também pode ler e gravar para outros recursos compartilhados (por exemplo, Object Storage) e outros Oracle Cloud Services. Você pode especificar o tempo máximo que a função pode executar definindo um timeout no arquivo func.yaml ou na Console.
O OCI Functions armazena os logs da função no Oracle Cloud Infrastructure ou em um destino de log externo.
Quando a função terminar de executar e depois que um período estiver inativo, o contêiner do Docker será removido. Se o OCI Functions receber outra chamada para a mesma função antes que o contêiner seja removido, a segunda solicitação será roteada para o mesmo contêiner em execução. Se o OCI Functions receber uma chamada para uma função que esteja sendo executada em um contêiner em execução, o OCI Functions será dimensionado horizontalmente para atender às solicitações recebidas e um segundo contêiner do Docker será iniciado.
O OCI Functions mostra informações sobre chamadas de função em gráficos de métricas.
O processo acima de chamar uma função é mostrado no diagrama.

