Function Compute oferece runtimes integrados para linguagens de programação populares, como Node.js, Python, PHP, Java, C# e Go. Assim, você concentra seus esforços na codificação da lógica de negócios, sem se preocupar com configurações adicionais. No entanto, em determinados cenários, talvez seja necessário utilizar linguagens menos comuns ou versões específicas de uma linguagem para atender a requisitos de negócios particulares. Nesses casos, crie um runtime personalizado para estabelecer um ambiente sob medida. Por exemplo, use linguagens como Rust ou especifique uma versão do Node.js, como o Node.js 16, no seu runtime personalizado.
Recomendamos o uso de funções web com um runtime personalizado. Essa combinação permite configurar rapidamente diversos frameworks populares de aplicações web, facilitando a criação e a implantação de aplicações e serviços baseados em HTTP. Personalize o comando de inicialização e a porta de escuta do seu runtime personalizado; além disso, há suporte para concorrência no nível da instância.
Ambientes de contêiner
A tabela a seguir lista os ambientes de contêiner compatíveis com runtimes personalizados.
|
Runtime |
Identificador |
Sistema operacional |
Arquitetura |
|
Custom runtime (Debian 12) (in public preview) |
custom.debian12 |
Debian 12 |
x86_64 |
|
Custom runtime (Debian 11) |
custom.debian11 |
Debian 11 |
x86_64 |
|
Custom runtime (Debian 10) |
custom.debian10 |
Debian 10 |
x86_64 |
|
Custom runtime (Debian 9) |
custom |
Debian 9 |
x86_64 |
O Custom runtime (Debian 12) é compatível nas seguintes regiões: China (Hangzhou), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot) e China (Chengdu).
Funções criadas após 00:00:00 de 1º de dezembro de 2021
Permissões de usuário: execute as funções como usuário root.
Permissões de diretório: grave dados em qualquer diretório.
Localização do código no contêiner: /code.
Funções criadas antes de 00:00:00 de 1º de dezembro de 2021
Permissões de usuário: execute as funções como usuário não root.
Permissões de diretório: grave dados apenas no diretório /tmp.
Localização do código no contêiner: /code.
Informações do ambiente
Dependências integradas
As dependências integradas de um runtime personalizado são idênticas às de um runtime integrado. Para mais informações, consulte os seguintes tópicos:
Ao criar uma função web com um runtime personalizado, o sistema configura automaticamente a camada pública correspondente à linguagem de programação utilizada. Por exemplo, ao criar uma função web em Python, o sistema configura uma camada Flask automaticamente.
Custom runtime (Debian 12)
A tabela a seguir apresenta a linguagem de programação integrada do Custom runtime (Debian 12). Escreva o código da sua função de runtime personalizado diretamente nessa linguagem, sem instalar interpretadores de terceiros ou configurar camadas.
Em algumas linguagens de programação, configure variáveis de ambiente. Consulte a tabela a seguir para obter detalhes.
|
Linguagem de programação |
Diretório de instalação |
Versão |
Variável de ambiente |
|
Python 3.11 |
/usr/bin/python3 |
3.11.2 |
Nenhuma configuração extra necessária |
Custom runtime (Debian 11)
A tabela a seguir exibe a linguagem de programação integrada do Custom runtime (Debian 11). Utilize essa linguagem para escrever o código da sua função de runtime personalizado diretamente, eliminando a necessidade de instalar interpretadores externos ou configurar camadas.
Para certas linguagens de programação, configure as variáveis de ambiente adequadas. Consulte a tabela a seguir para mais informações.
|
Linguagem de programação |
Diretório de instalação |
Versão |
Variável de ambiente |
|
Python 3.12 |
/var/fc/lang/python3.12 |
3.12.4 |
PATH=/var/fc/lang/python3.12/bin:$PATH |
Custom runtime (Debian 10)
A tabela a seguir relaciona as linguagens de programação integradas ao Custom runtime (Debian 10). Desenvolva o código da sua função de runtime personalizado nessas linguagens sem instalar interpretadores de terceiros ou definir camadas.
Algumas linguagens exigem a definição de variáveis de ambiente. Verifique os detalhes na tabela a seguir.
|
Linguagem de programação |
Diretório de instalação |
Versão |
Variável de ambiente |
|
Node.js 20 |
/var/fc/lang/nodejs20 |
v20.10.0 |
PATH=/var/fc/lang/nodejs20/bin:$PATH |
|
Node.js 18 |
/var/fc/lang/nodejs18 |
v18.19.0 |
PATH=/var/fc/lang/nodejs18/bin:$PATH |
|
Python 3.10 |
/var/fc/lang/python3.10 |
3.10.9 |
PATH=/var/fc/lang/python3.10/bin:$PATH |
|
Python 2.7 |
Diretório de instalação padrão |
2.7.16 |
N/A |
Custom runtime (Debian 9)
Os itens a seguir listam as linguagens de programação disponíveis nativamente no Custom runtime (Debian 9). Codifique sua função de runtime personalizado usando essas linguagens sem depender da instalação de interpretadores externos ou da configuração de camadas.
Python 3.7.4 (versão padrão do Python)
Node.js 10.16.2
OpenJDK 1.8.0
Ruby 2.7
Nginx 1.10.3
-
PHP 7.4.12
Uso de uma linguagem de programação não integrada
Recomendamos utilizar uma camada pública caso deseje escrever o código da função em uma linguagem de programação não integrada. Para mais informações, consulte Adicionar uma camada pública no console.
Para criar um runtime personalizado utilizando uma linguagem de programação não integrada, empacote o interpretador ou runtime dessa linguagem junto com seu arquivo de código e implante o pacote no Function Compute. Por exemplo, para criar um runtime Node.js 16, baixe o interpretador necessário, empacote-o com seu código e, em seguida, implante o pacote no Function Compute. Execute as etapas a seguir:
-
Baixe o
Node.jsna versão Linux de 64 bits para o diretório do pacote de código.wget http://mirrors.nju.edu.cn/nodejs/v16.14.2/node-v16.14.2-linux-x64.tar.gz -O node-v16.14.2-linux-x64.tar.gz && tar -zxvf node-v16.14.2-linux-x64.tar.gz && rm -rf node-v16.14.2-linux-x64.tar.gz -
Configure o comando de inicialização do
Node.jsno runtime personalizado.customRuntimeConfig: command: - /code/node-v16.14.2-linux-x64/bin/node args: - 'server.js' # You can also configure the following environment variable for your function: PATH=/code/node-v16.14.2-linux-x64/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin. # After the configuration is complete, you can use Node.js to start the HTTP server.
Instalação de dependências
Para saber como instalar dependências de cada linguagem de programação em um runtime personalizado, consulte os tópicos a seguir:
Também é possível utilizar camadas do Function Compute para instalar dependências. Recomendamos o uso de uma camada pública ou a construção online de uma camada de dependências. Para mais detalhes, consulte os seguintes tópicos: