Início Rápido do Serviço Functions no Host Local
Descubra como configurar e executar rapidamente em um host local 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 com a 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 seu ambiente de desenvolvimento de host local
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.
- 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 Chaves de API e selecione Adicionar chave de API.
- Selecione Gerar par de chaves de API no painel Adicionar chave de API.
- Selecione Fazer Download da chave privada e salve o arquivo da chave privada (como um arquivo .pem) no diretório
~/.oci
. (Se o diretório~/.oci
ainda não existir, crie-o agora). - Selecione Adicionar para adicionar a nova chave de assinatura de API às definições do usuário.
A caixa de diálogo Visualização do Arquivo de Configuração é exibida, contendo um trecho de arquivo de configuração com informações básicas de autenticação para um perfil chamado
DEFAULT
(incluindo a impressão digital da chave de assinatura de API que você acabou de criar). - Copie o trecho de código do arquivo de configuração mostrado na caixa de texto e feche a caixa de diálogo Visualização do Arquivo de Configuração.
- Em um editor de texto, abra o arquivo
~/.oci/config
e cole o trecho de código no arquivo. (Se o arquivo~/.oci/config
ainda não existir, crie-o agora). - No editor de texto, altere o perfil no trecho de código que você acabou de colar, da seguinte forma:
- Altere o nome do perfil de
[DEFAULT]
para o nome de sua escolha (por exemplo,[functions-developer-profile]
). Observe que o arquivo~/.oci/config
não pode conter dois perfis com o mesmo nome. - Altere o valor do parâmetro
key_file
do perfil para especificar o caminho do arquivo de chave privada (o arquivo .pem) baixado anteriormente.
- Altere o nome do perfil de
- No editor de texto, salve as alterações feitas no arquivo
~/.oci/config
e feche o editor de texto. - Em uma janela de terminal, altere as permissões no arquivo de chave privada (o arquivo .pem) para garantir que apenas você possa lê-lo, digitando:
chmod go-rwx ~/.oci/<private-key-file-name>.pem
Consulte Observações de Configuração para obter mais informações sobre como configurar uma chave de assinatura de API e como criar um perfil.
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
Observe que você especifica
--provider oracle
para ativar a autenticação e a autorização usando a assinatura de solicitação do Oracle Cloud Infrastructure, chaves privadas, grupos de usuários e políticas que concedem permissões a esses grupos de usuários. - Especifique se a CLI do Fn Project deve usar o novo contexto informando:
fn use context <my-context>
- Configure o novo contexto da CLI do Fn Project com o nome do perfil do OCI que você criou para uso com o OCI Functions (por exemplo,
[functions-developer-profile]
), digitando:fn update context oracle.profile <profile-name>
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.
No painel Configuração local na Console:
-
Copie o comando a seguir:
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
- Na janela do terminal, cole o comando que você acabou de copiar e execute-o.
-
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.
D 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!