Gerenciamento de instâncias reservadas
O que é uma instância reservada?
O FunctionGraph fornece instâncias sob demanda e reservadas.
- As instâncias sob demanda são criadas e liberadas pelo FunctionGraph com base no uso real da função. Ao receber solicitações para chamar funções, o FunctionGraph aloca automaticamente recursos de execução para as solicitações.
- As instâncias reservadas podem ser criadas e liberadas por você, conforme necessário. Depois de criar instâncias reservadas para uma função, o FunctionGraph encaminha preferencialmente solicitações para as instâncias reservadas. Se o número de solicitações exceder a capacidade de processamento das instâncias reservadas, o FunctionGraph encaminhará as solicitações excessivas para instâncias sob demanda e alocará automaticamente recursos de execução a essas solicitações.
Depois que as instâncias reservadas são criadas para uma função, o código, as dependências e o inicializador da função são carregados automaticamente. As instâncias reservadas estão sempre vivas no ambiente de execução, eliminando a influência de cold starts em seus serviços.
Para usar instâncias reservadas, envie um ticket de serviço para adicionar sua conta à lista de permissões.
Você pode criar instâncias reservadas diretamente ou criá-las na página de configuração da função. As diferenças entre os dois modos são descritas na tabela a seguir.
Modo |
Vantagem |
Desvantagem |
---|---|---|
Criação de instâncias reservadas diretamente |
Você pode criar uma instância reservada com apenas alguns cliques. |
Apenas um número fixo de instâncias reservadas pode ser criado. As instâncias reservadas podem ser insuficientes durante o horário de pico e ficar ociosas durante o horário fora do horário de pico. |
Criação de instâncias reservadas na página de configuração da função |
Você pode criar diferentes números de instâncias reservadas para diferentes períodos, evitando o desperdício de instâncias reservadas durante os horários de pico e garantindo instâncias reservadas suficientes durante os horários de pico. |
O procedimento é complexo. |
Criação de Diretamente um Número Fixo de Instâncias Reservadas
Verifique se a função, por exemplo, Objective-func, para a qual você deseja criar instâncias reservadas já existe no console do FunctionGraph.
- Faça login no console do FunctionGraph e escolha Functions > Reserved Instances no painel de navegação.
- Clique em Configure Reserved Instance.
- Defina os seguintes parâmetros:
Tabela 2 Informações de instância reservadas Parâmetro
Descrição
Aplicação
Selecione o aplicativo ao qual a função Objective-func pertence.
Função
Selecione Objective-func.
Versão
Selecione uma versão da função Objective-func.
Quantidade de RI
Informe o número de instâncias reservadas a serem criadas.
Para determinar quantas instâncias reservadas devem ser criadas, visualize o número de instâncias usadas na área Instance Statistics ou verifique o uso da função Objective-func.
- Clique em OK.
Depois de criar instâncias reservadas para uma função, você só pode alterar a quantidade de instâncias reservadas.
Criação de Instâncias Reservadas na Página Configuração da Função
O número de instâncias de função varia entre diferentes períodos. Para garantir instâncias reservadas suficientes durante os horários de pico e evitar o desperdício de instâncias reservadas durante os horários de pico, você pode criar um temporizador para invocar a função correspondente com um número diferente de instâncias reservadas em períodos diferentes.
Verifique se a função, por exemplo, Objective-func, para a qual você deseja criar instâncias reservadas já existe no console do FunctionGraph.
- Faça login no console do FunctionGraph e escolha Functions > Function List no painel de navegação.
- Clique em Create Function.
- Defina as seguintes informações.
Parâmetro
Descrição
Modelo
Selecione Create from scratch.
Nome da função
Insira um nome para identificar a função.
Aplicação
Selecione default.
Agência
Selecione Use no agency.
Descrição
Insira uma descrição para a função. Este parâmetro é opcional.
Tempo de execução
Selecione Python 2.7.
Manuseador
Insira index.handler.
Modo de entrada de código
Ao criar uma função, selecione Default code. Na página de guia Configuration, selecione Edit code inline e digite o seguinte código:
# -*- coding:utf-8 -*- import json import requests def handler (event, context): domainId = "https://{Endpoint}" url = "/v2/{project_id}/fgs/functions/{func-urn}/reservedinstances" token = context.getToken() requrl = domainId + url headerdata = {"Content-Type":"application/json","x-auth-token":token} r = requests.put(requrl, data=event["user_event"], headers=headerdata,verify=False) return r.json
Substitua os seguintes parâmetros pelos valores reais:
- Endpoint: Ponto final da função Objective-func. Para obter detalhes, consulte Regiões e endpoints.
- id_do_projeto: ID do projeto ao qual a função Objective-func pertence. Para obter detalhes, consulte Obtenção de um ID de projeto.
- func-urna: URN da função Objective-func.
- Clique em Create Now.
- Na página de guia Configuration, clique em Create Agency.
- Crie uma agência e conceda a ela a permissão Usuário FunctionGraph User. Para mais detalhes, veja Configuração das permissões de agência.
- Na página de guia Configuration, selecione a agência criada em 6 e clique em Save.
- Na página de guia Triggers, clique em Create Trigger.
- Defina as seguintes informações.
Parâmetro
Descrição
Tipo de fatilho
Selecione Timer.
Nome do temporizador
Digite um nome para identificar o temporizador.
Regra
Selecione Cron expression e insira uma expressão cron conforme necessário.
Ativar gatilho
Por predefinição, esta função está ativada. Mantenha a configuração padrão.
Informações adicionais
Informe o número de instâncias reservadas necessárias em períodos diferentes com base na regra de gatilho.
Figura 1 mostra um acionador de temporizador que solicita que o FunctionGraph crie duas instâncias reservadas a cada 3 minutos.
- Clique em OK.
Após a criação do gatilho, diferentes números de instâncias reservadas serão criados para a função Objective-func em diferentes períodos com base na regra do gatilho.