Os ambientes no Serverless Application Center isolam as implantações de aplicações em regiões, Virtual Private Clouds (VPCs) e configurações de recursos distintas. Implante serviços em ambientes isolados para garantir alta disponibilidade ou baixa latência nos serviços de produção. Cada ambiente define o escopo de recursos como Simple Log Service (SLS), VPC e File Storage NAS (NAS) de forma independente, evitando sobreposição entre cargas de trabalho de desenvolvimento, teste e produção. É possível associar regras de pipeline diferentes a cada ambiente. Por exemplo, um commit em uma branch de desenvolvimento aciona a integração contínua (CI) no ambiente de teste, enquanto um merge na branch principal dispara uma release no ambiente de produção.
Antes de começar
Por padrão, os ambientes não possuem nome de domínio atribuído. Para utilizar nomes de domínio diferentes em cada ambiente, especifique o campo customDomains no arquivo
s.yamldo seu repositório.Hospedar recursos da Alibaba Cloud (SLS, VPC, NAS) em um ambiente exige as permissões de serviço correspondentes. Anexe as políticas necessárias à função
AliyunFCServerlessDevsRole.Um serviço pode ser implantado em vários ambientes. Decida se deseja utilizar as configurações fornecidas pelo ambiente.
Criar um ambiente
Faça login no Function Compute console e abra a página de detalhes da aplicação.
Clique em Create Environment.

-
Configure os seguintes parâmetros:
Parâmetro
Descrição
Environment Name
Nome descritivo para distinguir este ambiente. Um tipo de ambiente pode ter múltiplos ambientes nomeados.
Environment Type
Categoria para filtragem: test, staging ou production.
Description
Informações básicas como região e nome da função. As definições de região, logging, rede e armazenamento especificadas aqui têm precedência sobre o
s.yaml. Por exemplo, se os.yamlespecificar China (Hangzhou), mas o ambiente estiver definido como China (Beijing), os recursos serão implantados em China (Beijing).Pipeline Configurations
Cada ambiente é mapeado para um pipeline por padrão. Configure o gatilho do pipeline e as etapas de build aqui.
Mapeamento de branch para ambiente
O fluxo de trabalho recomendado mapeia uma branch para um pipeline e, consequentemente, para um ambiente:
|
Branch |
Ambiente |
Gatilho |
|
|
Desenvolvimento |
Commit em |
|
|
Teste |
Commit em |
|
|
Produção |
Merge para |
Utilize pull requests (PRs) ou merge requests (MRs) para promover código das branches de desenvolvimento para as de teste e, posteriormente, para a branch principal.
Em alguns cenários, várias aplicações compartilham a mesma base de código para usuários diferentes. Uma única branch pode acionar múltiplos pipelines, atualizando diversos ambientes em um único commit.
Visualizar detalhes do ambiente
Faça login no Function Compute console.
No painel de navegação à esquerda, clique em Applications.
Na página Applications, localize sua aplicação e clique no ícone de expansão à esquerda para listar seus ambientes.
-
Clique em o nome de um ambiente para abrir a aba Environment Details. Esta aba exibe as informações abaixo e também fornece acesso ao desenvolvimento na nuvem e à configuração de pipeline:
Informações básicas
Configurações de source de código
Deployment History
Recursos
Reverter um ambiente
Uma reversão afeta apenas o código de negócio da aplicação. Dependências upstream e downstream — como bancos de dados — não são revertidas. Por exemplo, se sua aplicação não conseguir se conectar a um banco de dados devido a um erro, reverter apenas o código da aplicação não resolverá o problema.
A reversão reimplanta o código e as configurações de recursos (por exemplo, o arquivo s.yaml) capturados no snapshot de uma implantação anterior.
Abra a aba Environment Details do ambiente alvo.
Na seção Deployment History, clique em Roll Back ao lado da implantação que deseja restaurar.

Gerenciar recursos
O Serverless Application Center exibe informações de vinculação de recursos em modo somente leitura. Para gerenciar recursos, utilize o arquivo s.yaml no seu repositório de código em vez de alterar configurações diretamente na página de gerenciamento de recursos.
Alterações feitas na página de gerenciamento de recursos sem uma atualização correspondente no s.yaml serão sobrescritas na próxima implantação do pipeline. Por exemplo, se o s.yaml definir a memória da função como 1.024 MB e um desenvolvedor alterá-la para 2.048 MB na página de gerenciamento, a próxima implantação do pipeline redefinirá a memória para 1.024 MB.
Desenvolver na nuvem
Na página de detalhes da aplicação, clique em Cloud Development.
Clique em Initialize Code Repository para configurar o ambiente de código.
Após a inicialização, use o WebIDE para visualizar, editar e depurar código.
-
Envie as alterações para o repositório usando um dos seguintes métodos:
Use o terminal integrado ou o plug-in git.
Clique em Save Code to Repository no canto superior esquerdo para adicionar, fazer commit e enviar em uma única etapa.

Configurar pipelines
Para obter detalhes sobre a configuração de pipeline, consulte Gerenciar pipelines.
Excluir um ambiente
Faça login no Function Compute console.
No painel de navegação à esquerda, clique em Applications.
Localize o ambiente a ser excluído e clique em Delete na coluna Actions.
Na caixa de diálogo de confirmação, revise os recursos listados. Desmarque as caixas de seleção ao lado dos recursos que deseja manter.
Excluir um ambiente também pode remover seus recursos associados. Verifique os nomes e tipos de recursos antes de confirmar.

Isolar serviços entre ambientes
O Serverless Application Center segue um modelo GitOps: os repositórios git são a fonte única de verdade para o estado da aplicação, e um arquivo yaml que segue a especificação yaml do Serverless Devs conduz as implantações.
Em muitos contextos empresariais, as funções de P&D e O&M possuem responsabilidades distintas. As equipes de O&M gerenciam a infraestrutura e autorizam os desenvolvedores a utilizá-la. As equipes de P&D gerenciam o código da aplicação. Se toda a infraestrutura for mantida em um repositório git, o pessoal de O&M precisará submeter código para alterar a infraestrutura, o que entra em conflito com o fluxo de trabalho da maioria dos engenheiros de O&M. Os métodos de implantação a seguir abordam essa separação em diferentes escalas.
Método 1: Arquivos yaml separados por ambiente
Mantenha um arquivo yaml dedicado para cada ambiente e aponte cada pipeline para seu arquivo correspondente.

Para reduzir duplicação entre arquivos yaml, utilize a herança yaml no Serverless Devs.
Método 2: yaml compartilhado com variáveis de ambiente de pipeline
Utilize um único arquivo yaml e injete valores específicos por ambiente através de variáveis de ambiente do pipeline usando a sintaxe ${env(VAR_NAME)}.
vars:
region: ${env(region)}
service:
name: demo-service-${env(prefix)}
internetAccess: true
logConfig:
project: ${env(LOG_PROJECT)}
logstore: fc-console-function-pre
vpcConfig:
securityGroupId: ${env(SG_ID)}
vswitchIds:
- ${env(VSWITCH_ID)}
vpcId: ${env(VPC_ID)}
Para instruções sobre como definir variáveis de ambiente de pipeline, consulte a seção "Variáveis de ambiente de pipeline" em Gerenciar pipelines.
Método 3: yaml compartilhado com outputs de recursos do ambiente
Utilize um único arquivo yaml e referencie os recursos vinculados a cada ambiente através da sintaxe ${environment.outputs.XXX}.
service:
logConfig:
project: ${environment.outputs.slsProject}
logstore: ${environment.outputs.slsLogStore}
vpcConfig:
vpcId: ${environment.outputs.vpcId}
securityGroupId: ${environment.outputs.securityGroupId}
vswitchIds:
- ${environment.outputs.vswitchId}
nasConfig:
userId: 10003
groupId: 10003
mountPoints:
- serverAddr: ${environment.outputs.nasMountTargetId}
nasDir: /fc-deploy-service
fcDir: /mnt/auto
Escolher um método
|
Método |
Mais indicado para |
Vantagens |
Desvantagens |
|
1 -- Arquivos yaml separados |
Equipes pequenas onde todos os membros gerenciam arquivos yaml diretamente |
Mais direto; cada ambiente é totalmente autossuficiente |
Duplicação de yaml entre ambientes |
|
2 -- Variáveis de ambiente de pipeline |
Equipes com funções distintas de P&D e O&M e poucos ambientes |
Separação clara de responsabilidades; O&M gerencia variáveis, P&D gerencia código |
Difícil de escalar quando a infraestrutura cresce muito |
|
3 -- Outputs de recursos do ambiente |
Fluxos de trabalho serverless modernos com ambientes dinâmicos |
Suporta provisionamento de recursos sob demanda; ambientes podem ser criados e encerrados automaticamente durante a CI; permissões de recursos de produção podem ser concedidas ao P&D sob demanda |
Exige que os ambientes sejam pré-configurados com vinculações de recursos |