Início Rápido do Serviço Functions em uma Instância do OCI Compute
Descubra como configurar e executar rapidamente em uma instância de computação do OCI usando este OCI Functions QuickStart.
A. Configurar sua tenancy
Se os usuários e grupos adequados ainda não existirem:
- Acesse a Console como administrador da tenancy.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Domínios.
- Selecione um domínio e selecione a guia Gerenciamento de usuários.
- Crie um novo grupo selecionando Criar grupo na seção Grupos.
- Crie um novo usuário selecionando Criar na seção Usuários.
- Adicione um usuário a um grupo selecionando o nome do grupo e, em seguida, Designar usuário ao grupo na guia Usuários.
Consulte Notas de Configuração para obter mais informações.
Se ainda não existir um compartimento adequado no qual criar recursos de rede e recursos do OCI Functions:
- Acesse a Console como administrador da tenancy.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Compartimentos.
- Selecione Criar Compartimento.
Consulte Notas de Configuração para obter mais informações.
Se ainda não existir uma VCN adequada na qual criar recursos de rede:
- Acesse a Console como administrador da tenancy.
- Abra o menu de navegação , selecione Rede e selecione Redes virtuais na nuvem.
- Selecione Iniciar Assistente de VCN no menu Ações para criar uma nova VCN.
- No painel Iniciar Assistente da VCN, selecione Criar VCN com Conectividade da Internet e Iniciar Assistente da VCN.
- Digite um nome para a nova VCN, selecione Próximo e, em seguida, selecione Criar para criar a VCN junto com os recursos de rede relacionados.
Consulte Notas de Configuração para obter mais informações.
Se um ou mais usuários do OCI Functions não forem um administrador da tenancy:
- Acesse a Console como administrador da tenancy.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Políticas.
-
Selecione Criar Política, especifique um nome e uma descrição para a nova política e selecione o compartimento raiz da tenancy.
-
Use o Policy Builder para criar a política. Selecione Funções na lista de Casos de uso da política e baseie a política no modelo de política Permitir que os usuários criem, implantem e gerenciem funções e aplicativos.
O modelo de política inclui as seguintes instruções de política:
Allow group <group-name> to use cloud-shell in tenancy
Allow group <group-name> to manage repos in tenancy
Allow group <group-name> to read objectstorage-namespaces in tenancy
Allow group <group-name> to manage logging-family in tenancy
Allow group <group-name> to read metrics in tenancy
Allow group <group-name> to manage functions-family in tenancy
Allow group <group-name> to use virtual-network-family in tenancy
Allow group <group-name> to use apm-domains in tenancy
Allow group <group-name> to read vaults in tenancy
Allow group <group-name> to use keys in tenancy
Allow service faas to use apm-domains in tenancy
Allow service faas to read repos in tenancy where request.operation='ListContainerImageSignatures'
Allow service faas to {KEY_READ} in tenancy where request.operation='GetKeyVersion'
Allow service faas to {KEY_VERIFY} in tenancy where request.operation='Verify'
Se necessário, você pode restringir essas instruções de política por compartimento.
Consulte Notas de Configuração para obter mais informações.
B. Criar aplicativo
- Acesse a Console como desenvolvedor de funções.
- Abra o menu de navegação e selecione Serviços ao Desenvolvedor. Em Funções, selecione Aplicativos.
- Selecione a região que você está usando com o OCI Functions.
- Selecione Criar aplicativo.
- Especifique:
- helloworld-app como o nome do novo aplicativo. Você implantará sua primeira função neste aplicativo e especificará esse aplicativo ao chamar a função.
- A VCN e a sub-rede na qual executar a função. Observe que uma sub-rede pública requer um gateway de internet na VCN, e uma sub-rede privada requer um gateway de serviço na VCN.
- Selecione Criar.
Consulte instruções detalhadas para obter mais informações.
C. Configurar uma instância de computação do OCI
- Acesse a Console como administrador da tenancy.
- Abra o menu de navegação e selecione Computação. Em Compute, selecione Instâncias.
- Selecione o compartimento no qual criar recursos de rede e recursos do OCI Functions.
- Se ainda não existir uma instância de computação adequada no compartimento, selecione Criar Instância e:
- selecionar o compartimento, a VCN e as sub-redes para uso com o OCI Functions
- especificar que um endereço IP público deve ser designado à nova instância de computação
- selecione o arquivo que contém a chave SSH para acessar a nova instância de computação
-
Na página de detalhes da instância, copie o OCID e o endereço IP público da instância de computação para usar como ambiente de desenvolvimento.
Consulte Criando uma Instância para obter mais informações.
Crie um novo grupo dinâmico para incluir a instância de computação:
- Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Domínios. Em Domínio de identidades, selecione Grupos dinâmicos.
- Crie um novo grupo dinâmico.
-
Digite uma regra que inclua o OCID da instância de computação:
ANY {instance.id = '<instance-ocid>'}
Consulte Managing Dynamic Groups para obter mais informações.
Crie uma política para conceder ao novo grupo dinâmico acesso a recursos de função, recursos de rede e ao Oracle Cloud Infrastructure Registry:
- Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Políticas.
-
Selecione Criar Política e use o editor manual do Policy Builder para criar uma nova política com as seguintes instruções de política:
Allow dynamic-group <dynamic-group-name> to manage functions-family in compartment <compartment-name>
Allow dynamic-group <dynamic-group-name> to use virtual-network-family in compartment <compartment-name>
Allow dynamic-group <dynamic-group-name> to read repos in tenancy
Consulte Gerenciando Políticas para obter mais informações.
D Configurar seu ambiente de desenvolvimento de instância de computação do OCI
Em uma janela de terminal do seu ambiente de desenvolvimento:
- Confirme se o Docker está instalado informando:
docker version
Se aparecer uma mensagem de erro indicando que o Docker não está instalado, você terá de instalar o Docker antes de continuar. Consulte a documentação do Docker da sua plataforma (para Oracle Linux, consulte aqui).
Supondo que o Docker esteja instalado, vá para a seção Pré-requisitos da página inicial do Fn Project em GitHub e confirme se a versão instalada do Docker está no mínimo especificada lá. Caso contrário, reinstale o Docker antes de continuar.
- Inicie a imagem padrão do Docker hello-world como um contêiner para confirmar se o Docker está sendo executado digitando:
docker run hello-world
Se você vir uma mensagem de erro indicando que o Docker não está sendo executado, será necessário iniciar o daemon do Docker antes de continuar. Consulte a documentação do Docker.
Consulte Notas de Configuração para obter mais informações.
Em uma janela de terminal do seu ambiente de desenvolvimento:
- Instale a CLI do Fn Project usando as instruções apropriadas abaixo para o seu ambiente:
- Linux ou MacOS: Digite:
curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
- MacOS usando Homebrew: Digite:
brew update && brew install fn
- Windows: Siga as Instruções de Instalação do Cliente Fn em GitHub.
- Linux, MacOS ou Windows: Faça download do binário e execute-o na página Fn Project Releases em GitHub.
- Linux ou MacOS: Digite:
- Confirme se a CLI do Fn Project foi instalada informando:
fn version
Consulte Notas de Configuração para obter mais informações.
Em uma janela de terminal do seu ambiente de desenvolvimento:
- Crie um novo contexto da CLI do Fn Project informando:
fn create context <my-context> --provider oracle-ip
Observe que você especifica
--provider oracle-ip
para ativar a autenticação e a autorização usando OCIDs de instância, grupos dinâmicos e políticas, concedendo permissões a esses grupos dinâmicos. - Especifique se a CLI do Fn Project deve usar o novo contexto informando:
fn use context <my-context>
Consulte Notas de Configuração para obter mais informações.
Em uma janela de terminal do seu ambiente de desenvolvimento:
- Configurar o novo contexto da CLI do Fn Project com o OCID do compartimento cujas funções implantadas você deseja possuir
fn update context oracle.compartment-id <compartment-ocid>
- Configure o novo contexto com o ponto final API-url a ser usado ao chamar a API do OCI informando:
fn update context api-url <api-endpoint>
em que
<api-endpoint>
é um dos pontos finais na lista de pontos finais do serviço Functions na API do Serviço Functions, no formatohttps://functions.<region-identifier>.oci.oraclecloud.com
. Por exemplo:fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
-
Configure o contexto da CLI do Fn Project com o endereço do Oracle Cloud Infrastructure Registry na região e tenancy atuais que você deseja usar com o OCI Functions:
fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name-prefix>
em que
<repo-name-prefix>
é um prefixo de sua escolha para o repositório do Oracle Cloud Infrastructure Registry no qual as imagens serão armazenadas para a função. Por exemplo:fn update context registry phx.ocir.io/ansh81vru1zp/acme-repo
-
Configure o contexto da CLI do Fn Project com o OCID do compartimento para repositórios de/para os quais você deseja que o OCI Functions envie e extraia imagens de função digitando:
fn update context oracle.image-compartment-id <compartment-ocid>
Por exemplo:
fn update context oracle.image-compartment-id ocid1.compartment.oc1..aaaaaaaaquqe______z2q
Se você não especificar um valor para
oracle.image-compartment-id
, o OCI Functions enviará e extrairá imagens de/para repositórios no compartimento raiz.
Consulte Notas de Configuração para obter mais informações.
- Acesse a Console como desenvolvedor de funções.
- No menu de navegação , selecione o menu Perfil
e, em seguida, selecione Definições do usuário ou Meu perfil, dependendo da opção que você vir.
- Selecione a guia Tokens e chaves, vá para a seção Tokens de Autenticação e selecione Gerar token.
- Digite uma descrição significativa para o token de autenticação na caixa de diálogo Gerar token e selecione Gerar token. O novo token de autenticação será exibido.
- Copie o token de autenticação imediatamente para uma localização segura de onde você poderá recuperá-lo posteriormente, porque não verá o token de autenticação novamente na Console.
- Feche a caixa Gerar token.
Consulte Notas de Configuração para obter mais informações.
Em uma janela de terminal do seu ambiente de desenvolvimento:
-
Digite o seguinte comando:
docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.io
Por exemplo:
docker login -u 'ansh81vru1zp/jdoe@acme.com' phx.ocir.io
Se sua tenancy for federada com o Oracle Identity Cloud Service, o formato será um pouco diferente. Por exemplo:
docker login -u 'ansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com' phx.ocir.io
-
Quando for solicitada uma senha, digite o token de autenticação do Oracle Cloud Infrastructure que você criou e copiou anteriormente. Por exemplo,
6aN...6MqX
Agora você está pronto para começar a criar, implantar e chamar funções.
Consulte Notas de Configuração para obter mais informações.
E. Criar, implantar e chamar sua função
Na janela de terminal:
-
Crie uma função java helloworld informando:
fn init --runtime java hello-java
Um diretório chamado hello-java é criado, contendo:
- um arquivo de definição de função chamado func.yaml
- um diretório /src contendo arquivos e diretórios de origem para a função helloworld
- um arquivo de configuração Maven chamado pom.xml que especifica as dependências necessárias para compilar a função
O Java é apenas uma das várias linguagens suportadas.
Consulte instruções detalhadas para obter mais informações.
Na janela de terminal:
- Altere o diretório para o diretório hello-java criado na etapa anterior:
cd hello-java
- Informe o seguinte comando único do Fn Project para construir a função e suas dependências como uma imagem Docker chamada hello-java, submeta a imagem ao registro Docker especificado e implante a função no OCI Functions no aplicativo helloworld-app que você criou anteriormente:
fn -v deploy --app helloworld-app
- (Opcional) Confirme se a função foi implantada no OCI Functions selecionando a guia Functions (na página de detalhes do aplicativo helloworld-app) e observando que a função hello-java agora aparece.
Consulte instruções detalhadas para obter mais informações.
Na janela de terminal:
-
Chame a função hello-java digitando:
fn invoke helloworld-app hello-java
A mensagem 'Hello world!' é exibida.
-
Chame a função hello-java com o parâmetro
'John'
digitando:echo -n 'John' | fn invoke helloworld-app hello-java
A mensagem 'Hello John!' é exibida.
Parabéns! Você acabou de criar, implantar e chamar sua primeira função usando o OCI Functions!
Consulte instruções detalhadas para obter mais informações.
Agora que você criou, implantou e chamou uma função, saiba como:
- exibir logs de função no serviço Oracle Cloud Infrastructure Logging ou configurando um URL de syslog (consulte Armazenando e Exibindo Logs de Função
- explorar o OCI Functions usando amostras em GitHub (consulte Amostras do Oracle Functions)
- chamar uma função usando SDKs (consulte Usando SDKs para Chamar Funções)
Terminou!