Todos os produtos
Search
Central de documentação

Function Compute:Crie um aplicativo web com uma função web

Última atualização: Sep 21, 2026

Use funções web no Function Compute para criar aplicativos web e services de API com facilidade. As funções web são compatíveis com frameworks web de diversas linguagens populares, como Java SpringBoot, Python Flask e Node.js Express, o que permite migrar rapidamente aplicativos existentes. O Function Compute gerencia os recursos de computação subjacentes para você. Quando seu service é acessado por um navegador ou URL, o sistema provisiona e dimensiona instâncias automaticamente para atender à demanda. Quando não há tráfego, o sistema libera as instâncias automaticamente e você paga apenas pelos recursos utilizados.

Visão geral

Este tópico descreve como implantar um aplicativo Flask usando uma função web no Function Compute. O processo geral é o seguinte:

  1. Desenvolva e teste o aplicativo web: crie um projeto em sua máquina local com o código de exemplo. Edite e teste o código da API para garantir seu funcionamento correto. Ignore esta etapa se desejar migrar um aplicativo existente.

  2. Gere um pacote de código: instale as dependências necessárias no diretório local do projeto. Em seguida, empacote o projeto em um arquivo ZIP para implantação no Function Compute.

  3. Faça upload e implante o aplicativo: configure os parâmetros de criação da função e faça o upload do pacote de código para criá-la.

  4. Teste a função web: invoque a função web e verifique se o aplicativo Flask está em execução conforme o esperado.

Pré-requisitos

Crie uma conta Alibaba Cloud

Crie uma conta Alibaba Cloud e conclua a verificação de nome real.

Ative o Function Compute

Se você registrou uma conta Alibaba Cloud e concluiu a verificação de nome real após 27 de agosto de 2024, poderá usar o Function Compute sem ativá-lo. Ao fazer login no console do Function Compute pela primeira vez, siga as instruções na tela para resgatar um pacote de recursos gratuito. Para saber mais, consulte Free trial.

Caso tenha registrado sua conta Alibaba Cloud antes de 27 de agosto de 2024, siga estas etapas para ativar o service.

  1. Acesse a página do product Function Compute.

  2. Clique em Console para abrir a página de ativação. Clique em Activate Now para ativar o service e abrir o console do Function Compute.

    Nota
    • Recomendamos usar uma conta Alibaba Cloud para ativar o service e um usuário RAM para gerenciar recursos, como funções. Conceda permissões ao usuário RAM com base no princípio do menor privilégio. Para detalhes, consulte Grant permissions to a RAM user.

  3. (Opcional) Na primeira vez que fizer login no console do Function Compute, clique em OK na caixa de diálogo Alibaba Cloud Service Authorization para criar uma service-linked role. Essa função permite que o Function Compute acesse outros cloud services.

    Após a criação da função, o Function Compute poderá acessar seus recursos de outros services, como VPC, ECS, Log Service (SLS) e Container Registry.

Procedimento

Utilize um dos métodos a seguir para criar uma função web e implantar seu código.

  • Crie uma função no console do Function Compute: este método permite criar rapidamente uma única função, ideal para desenvolver aplicativos leves ou para validações rápidas.

  • Use a ferramenta de linha de comando Serverless Devs: indicado para gerenciar projetos de produção complexos e para implantações automatizadas. Use um arquivo de configuração YAML para gerenciar várias funções e seus recursos de cloud relacionados. Para informações adicionais, consulte Quick start.

Para simplificar o processo, este tópico descreve como criar uma função no console do Function Compute.

Etapa 1: Desenvolva e teste o aplicativo

Nota

Se desejar migrar um aplicativo Flask existente, ignore esta etapa e prossiga para Etapa 2: Gere um pacote de código.

  1. Abra uma nova janela de linha de comando em sua máquina local e execute o comando a seguir para instalar as bibliotecas Flask e tabulate necessárias.

    pip install Flask tabulate
  2. Crie uma pasta chamada code e um arquivo chamado app.py dentro dela. Cole o código de exemplo a seguir no arquivo. Este código implementa um service de calendário simples empacotado como uma API. A API aceita um ano e um mês, como janeiro de 2025, e retorna uma tabela de calendário para esse mês.

    import calendar
    from flask import Flask, request
    from tabulate import tabulate
    import logging
    import json
    
    logger = logging.getLogger()
    app = Flask(__name__)
    
    @app.route("/", methods=["POST"])
    def get_month_calendar():
        # Get the request ID and print the log.
        requestId = request.headers.get('x-fc-request-id', '')
        logger.info("FC Invoke Start RequestId: " + requestId)
        # Get the request content and check the request format.
        data = json.loads(request.stream.read().decode('utf-8'))
        if not ('year' in data and 'month' in data):
            message = "Request must be in format like {'year': '1999', 'month': '12'}"
            return message
    
        # Get the calendar table.
        result = print_calendar(year=int(data['year']), month=int(data['month']))
        # Print the log that indicates the function execution is complete before the result is returned.
        logger.info("FC Invoke End RequestId: " + requestId)
        return result
    
    def print_calendar(year, month):
        # Get the calendar matrix for the specified year and month.
        cal = calendar.monthcalendar(year, month)
        # Change the dates that do not belong to the month from 0 to empty strings.
        cal = list(map(lambda sublist: list(map(lambda x: '' if x == 0 else x, sublist)), cal))
        # Create table headers.
        headers = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"]
    
        # Use tabulate to print the calendar table.
        return tabulate(cal, headers=headers, tablefmt="grid", stralign='center', numalign='center')
    
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=9000)
    
  3. Execute o comando python3 app.py e execute seu aplicativo Flask. Se a saída Running on http://127.0.0.1:9000 for exibida, o aplicativo Flask estará em execução. Em seguida, use um comando curl para testar o aplicativo.

    python3 app.py 
     * Serving Flask app 'app'
     * Debug mode: off
    WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
     * Running on http://127.0.0.1:9000
     * Running on http://47.100.XX.XX:9000
    Press CTRL+C to quit
  4. Abra uma nova janela de terminal e use o curl para enviar uma requisição de exemplo. Um comando bem-sucedido retorna uma tabela de calendário.

    curl -X POST http://127.0.0.1:9000 -d '{"year": "2000", "month": "1"}'

    image

Você criou e testou o projeto localmente.

Etapa 2: Gere um pacote de código

Crie localmente um pacote de código adequado para o Function Compute. O pacote de código deve conter o seguinte:

  • Os arquivos do projeto exigidos pelo aplicativo web.

  • Se seu aplicativo possuir dependências não incluídas no runtime, adicione-as ao pacote de código. Para obter informações sobre as dependências integradas aos runtimes, consulte Built-in dependencies.

  1. Instale as dependências: no diretório raiz do projeto do seu aplicativo web, execute o comando a seguir para instalar as dependências necessárias (neste exemplo, tabulate) nesse diretório. Este comando instala as dependências no diretório raiz do seu projeto.

    Nota

    O runtime de função web Python já inclui a biblioteca Flask. Instale apenas a biblioteca tabulate para que o aplicativo de exemplo funcione.

    pip install -t . tabulate
  2. Empacote todos os arquivos no diretório raiz do projeto.

    Linux ou macOS

    No diretório raiz do projeto, execute o comando zip code.zip -r ./*. Este comando empacota os arquivos do projeto e as dependências em um arquivo ZIP, criando o pacote de código.

    Nota

    Certifique-se de ter permissões de leitura e gravação no diretório.

    Windows

    Acesse o diretório do projeto, selecione todos os arquivos, clique com o botão direito neles e empacote-os em um arquivo ZIP. Isso empacota os arquivos do projeto e as dependências em um arquivo ZIP, criando o pacote de código.

Etapa 3: Crie e implante a função

  1. Selecione o tipo de função web: faça login no console do Function Compute. No painel de navegação à esquerda, clique em Function Management > Functions. Na barra de navegação superior, selecione a região onde deseja criar a função. Na página exibida, clique em Create Function e siga as instruções na tela para criar uma Web Function.

  2. Selecione um runtime: conforme mostrado na figura a seguir, selecione Custom Runtime. Este runtime possui as dependências exigidas pelo framework Flask.image

    Nota
    • Recomendamos usar um Custom Runtime para sua função web. Um Custom Runtime permite especificar um comando de inicialização e uma porta de escuta, além de suportar o tratamento de requisições simultâneas. Os Built-in Runtimes não oferecem esses recursos e são mais adequados para lidar com eventos gerados por outros cloud services.

    • Se preferir a implantação em contêineres, use um Custom Container para criar uma função web. Este runtime também suporta o tratamento de requisições simultâneas, mas você deve gerenciar as dependências por conta própria.

    • Para uma comparação detalhada dos runtimes, consulte Select a runtime.

  3. Implante o pacote de código: conforme mostrado na figura, faça o upload do pacote de código ZIP criado na Etapa 2. Defina o comando de inicialização como python3 app.py e a porta de escuta como 9000. Se estiver migrando um aplicativo Flask existente, modifique a configuração com base no comando e na porta de inicialização reais. Por exemplo, a porta padrão do Flask é a 5000.

    Clique em Create e aguarde a criação da função.image

Etapa 4: Teste a função

  1. Obtenha a URL da função: na página de detalhes da função recém-criada, clique na aba Trigger. Na configuração do gatilho HTTP, copie o endpoint público.

    Se estiver em um ambiente de teste e não precisar de autenticação, altere o Authentication Method para No Authentication na configuração do gatilho HTTP durante ou após a criação do gatilho.

    image

  2. Teste a função: use curl, Postman ou qualquer cliente HTTP para invocar a função e verificar se o aplicativo Flask funciona conforme o esperado. O exemplo a seguir usa um comando curl. Substitua a URL pelo endpoint copiado na etapa anterior.

    curl https://******.cn-hangzhou.fcapp.run -d '{"year": "2025", "month": "1"}' 

    A API web retorna as informações do calendário de janeiro de 2025. A saída a seguir é um exemplo.

    image

    Nota
    • Se você usar a configuração padrão do gatilho HTTP, o comando retornará um erro "MissingRequiredHeader". Se estiver em um ambiente de teste, altere o Authentication Method do gatilho para No Authentication.

    • O comando e a saída de exemplo nesta etapa aplicam-se apenas ao código de exemplo. Se estiver migrando um aplicativo existente, invoque o service com base no nome e nos parâmetros reais da API. Para mais detalhes, acesse Use cURL to test a function.

  3. (Opcional) Acesse a função por um navegador: o endpoint público fornecido pelo gatilho HTTP não pode ser aberto diretamente em um navegador (o que pode acionar um baixe forçado) e destina-se apenas a fins de teste. Recomendamos vincular um nome de domínio personalizado à função para habilitar o acesso pelo navegador e para uso em ambiente de produção. Para saber mais, consulte Configure a custom domain name.

(Opcional) Etapa 5: Limpe os recursos

O Function Compute é um service de pagamento conforme o uso. Não há cobrança por funções não utilizadas. No entanto, pode haver cobrança por recursos de cloud associados, como dados armazenados no OSS e no File Storage NAS, além de gatilhos criados.

Se precisar, exclua uma função, faça login no console do Function Compute. No painel de navegação à esquerda, clique em Function Management > Functions. Selecione uma região. Na coluna Actions da função de destino, clique em Delete. Na caixa de diálogo exibida, confirme que a função não está vinculada a nenhum recurso, como gatilhos, e confirme a exclusão.

Operações avançadas

Agora que você criou e implantou um aplicativo web em uma função web, execute as operações avançadas a seguir conforme suas necessidades.

  • Desenvolva código no console: embora este tópico foque no desenvolvimento local, útil para migrar aplicativos existentes, simplifique a implantação usando o WebIDE. Este método elimina a necessidade de gerar um pacote de código localmente e é ideal para iterações rápidas de desenvolvimento. Para detalhes, consulte How to use WebIDE.

    Nota

    O WebIDE suporta apenas Python, Node.js e PHP. Para outras linguagens, como Java e Go, faça upload apenas de arquivos ZIP compilados e empacotados ou arquivos binários.

  • Implante projetos continuamente usando o Serverless Application Center: para automatizar a compilação e a implantação (CI/CD) do seu código no Function Compute, utilize o Serverless Application Center. Para informações adicionais, consulte Implement continuous deployment for an existing Function Compute project by using Serverless Application Center.

  • Configure o log: para facilitar a depuração, a solução de problemas ou a auditoria de segurança, recomendamos configurar o log das suas funções. Para saber mais, consulte Configure the logging feature.

Referências

Para mais informações sobre como adicionar pacotes de dependências para diferentes linguagens, consulte os tópicos a seguir:

Python

Deploy a Python code package

Node.js

Deploy a Node.js code package

Java

Compile and deploy a Java code package

Go

Compile and deploy a Go code package

C#

Compile and deploy a C# code package

PHP

Deploy a PHP code package