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

1. Criar grupos e usuários

Se os usuários e grupos adequados ainda não existirem:

  1. Acesse a Console como administrador da tenancy.
  2. Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Domínios.
  3. Selecione um domínio e selecione a guia Gerenciamento de usuários.
  4. Crie um novo grupo selecionando Criar grupo na seção Grupos.
  5. Crie um novo usuário selecionando Criar na seção Usuários.
  6. 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.

2. Criar compartimento

Se ainda não existir um compartimento adequado no qual criar recursos de rede e recursos do OCI Functions:

  1. Acesse a Console como administrador da tenancy.
  2. Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Compartimentos.
  3. Selecione Criar Compartimento.

Consulte Notas de Configuração para obter mais informações.

3. Criar VCN e sub-redes

Se ainda não existir uma VCN adequada na qual criar recursos de rede:

  1. Acesse a Console como administrador da tenancy.
  2. Abra o menu de navegação , selecione Rede e selecione Redes virtuais na nuvem.
  3. Selecione Iniciar Assistente de VCN no menu Ações para criar uma nova VCN.
  4. No painel Iniciar Assistente da VCN, selecione Criar VCN com Conectividade da Internet e Iniciar Assistente da VCN.
  5. 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.

4. Criar política para grupo e serviço

Se um ou mais usuários do OCI Functions não forem um administrador da tenancy:

  1. Acesse a Console como administrador da tenancy.
  2. Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Políticas.
  3. Selecione Criar Política, especifique um nome e uma descrição para a nova política e selecione o compartimento raiz da tenancy.

  4. 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

1. Crie seu primeiro aplicativo
  1. Acesse a Console como desenvolvedor de funções.
  2. Abra o menu de navegação e selecione Serviços ao Desenvolvedor. Em Funções, selecione Aplicativos.
  3. Selecione a região que você está usando com o OCI Functions.
  4. Selecione Criar aplicativo.
  5. 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.
  6. Selecione Criar.

Consulte instruções detalhadas para obter mais informações.

C. Configurar uma instância de computação do OCI

1. Criar instância e obter OCID
  1. Acesse a Console como administrador da tenancy.
  2. Abra o menu de navegação e selecione Computação. Em Compute, selecione Instâncias.
  3. Selecione o compartimento no qual criar recursos de rede e recursos do OCI Functions.
  4. 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
  5. 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.

2. Criar um grupo dinâmico

Crie um novo grupo dinâmico para incluir a instância de computação:

  1. 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.
  2. Crie um novo grupo dinâmico.
  3. 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.

3. Criar política para grupo dinâmico

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:

  1. Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Políticas.
  2. 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

1. Instalar e iniciar o Docker

Em uma janela de terminal do seu ambiente de desenvolvimento:

  1. 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.

  2. 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.

2. Instalar a CLI do Fn Project

Em uma janela de terminal do seu ambiente de desenvolvimento:

  1. Instale a CLI do Fn Project usando as instruções apropriadas abaixo para o seu ambiente:
  2. Confirme se a CLI do Fn Project foi instalada informando:
    fn version

Consulte Notas de Configuração para obter mais informações.

3. Configurar provedor de contexto da CLI do Fn Project --oracle-ip

Em uma janela de terminal do seu ambiente de desenvolvimento:

  1. 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.

  2. 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.

4. Configuração completa do contexto da CLI do Fn Project

Em uma janela de terminal do seu ambiente de desenvolvimento:

  1. 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>
  2. 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 formato https://functions.<region-identifier>.oci.oraclecloud.com. Por exemplo:

    fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
  3. 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
  4. 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.

5. Gerar token de autenticação
  1. Acesse a Console como desenvolvedor de funções.
  2. No menu de navegação , selecione o menu Perfil Ícone do menu Perfil e, em seguida, selecione Definições do usuário ou Meu perfil, dependendo da opção que você vir.
  3. Selecione a guia Tokens e chaves, vá para a seção Tokens de Autenticação e selecione Gerar token.
  4. 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.
  5. 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.
  6. Feche a caixa Gerar token.

Consulte Notas de Configuração para obter mais informações.

6. Identificar-me no Registro

Em uma janela de terminal do seu ambiente de desenvolvimento:

  1. 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
  2. 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

1. Crie sua primeira função

Na janela de terminal:

  1. 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.

2. Implemente sua primeira função

Na janela de terminal:

  1. Altere o diretório para o diretório hello-java criado na etapa anterior:
    cd hello-java
  2. 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
  3. (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.

3. Chamar sua primeira função

Na janela de terminal:

  1. Chame a função hello-java digitando:

    fn invoke helloworld-app hello-java

    A mensagem 'Hello world!' é exibida.

  2. 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.

4. Próximas etapas

Agora que você criou, implantou e chamou uma função, saiba como:

Terminou!