As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Implante um aplicativo de página única baseado em React no Amazon S3 e CloudFront
Jean-Baptiste Guillois, Amazon Web Services
Resumo
Um aplicativo de página única (SPA) é um site ou aplicativo da web que atualiza dinamicamente o conteúdo de uma página da Web exibida usando. JavaScript APIs Essa abordagem aprimora a experiência do usuário e o desempenho de um site porque atualiza apenas novos dados em vez de recarregar a página inteira do servidor.
Esse padrão fornece uma step-by-step abordagem para codificar e hospedar um SPA escrito em React no Amazon Simple Storage Service (Amazon S3) e na Amazon. CloudFront O SPA nesse padrão usa uma API REST que é configurada no Amazon API Gateway e exposta por meio de uma CloudFront distribuição da Amazon para simplificar o gerenciamento do compartilhamento de recursos de origem cruzada (CORS).
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS.
Node.js e
npm, instalado e configurado. Para obter mais informações, consulte a seção Fazer downloadda documentação de Node.js. Yarn, instalado e configurado. Para obter mais informações, consulte a documentação do Yarn
. Git, instalado e configurado. Para obter mais informações, consulte a documentação do Git
.
Arquitetura

Essa arquitetura é implantada automaticamente usando AWS CloudFormation (infraestrutura como código). Ele usa serviços regionais, como o Amazon S3 para armazenar os ativos estáticos e o Amazon CloudFront com o Amazon API Gateway para expor os endpoints da API regional (REST). Os registros do aplicativo são coletados usando a Amazon CloudWatch. Todas as chamadas de AWS API são auditadas em AWS CloudTrail. Todas as configurações de segurança (por exemplo, identidades e permissões) são gerenciadas no AWS Identity and Access Management (IAM). O conteúdo estático é entregue pela rede de distribuição de CloudFront conteúdo (CDN) da Amazon, e as consultas de DNS são tratadas pelo Amazon Route 53.
Ferramentas
Serviços da AWS
O Amazon API Gateway ajuda você a criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala.
AWS CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los em todo o ciclo de vida em todas Contas da AWS as regiões.
A Amazon CloudFront acelera a distribuição do seu conteúdo da web entregando-o por meio de uma rede mundial de data centers, o que reduz a latência e melhora o desempenho.
AWS CloudTrailajuda você a auditar a governança, a conformidade e o risco operacional do seu Conta da AWS.
CloudWatchA Amazon ajuda você a monitorar as métricas dos seus AWS recursos e dos aplicativos em que você executa AWS em tempo real.
AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
O Amazon Route 53 é um serviço web de DNS altamente disponível e escalável.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
Código
O código de aplicativo de amostra desse padrão está disponível no repositório de aplicativos de página única GitHub CORS baseado em React
Práticas recomendadas
Ao usar o armazenamento de objetos do Amazon S3, você pode armazenar os ativos estáticos do seu aplicativo de forma segura, altamente resiliente, eficiente e econômica. Não há necessidade de usar um contêiner dedicado ou uma instância do Amazon Elastic Compute Cloud (Amazon EC2) para essa tarefa.
Ao usar a rede de distribuição de CloudFront conteúdo da Amazon, você pode reduzir a latência que seus usuários podem experimentar ao acessar seu aplicativo. Você também pode conectar um firewall de aplicativo da web (AWS WAF) para proteger seus ativos contra ataques maliciosos.
Épicos
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Clonar o repositório. | Execute o comando a seguir para clonar o repositório do aplicativo de amostra:
| Desenvolvedor de aplicativos, AWS DevOps |
Implante o aplicativo localmente. |
| Desenvolvedor de aplicativos, AWS DevOps |
Acesse o aplicativo localmente. | Abra uma janela do navegador e insira o URL | Desenvolvedor de aplicativos, AWS DevOps |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Implante o AWS CloudFormation modelo. |
| Desenvolvedor de aplicativos, AWS DevOps |
Personalize os arquivos de origem do seu aplicativo. |
| Desenvolvedor de aplicativos |
Crie o pacote do aplicativo. | No diretório do projeto, execute o comando | Desenvolvedor de aplicativos |
Implemente o pacote do aplicativo. |
| Desenvolvedor de aplicativos, AWS DevOps |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Acessar e testar o aplicativo. | Abra uma janela do navegador e cole o domínio de CloudFront distribuição (a | Desenvolvedor de aplicativos, AWS DevOps |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Exclua os conteúdos do bucket do S3. |
| AWS DevOps, desenvolvedor de aplicativos |
Exclua a AWS CloudFormation pilha. |
| AWS DevOps, desenvolvedor de aplicativos |
Recursos relacionados
Para implantar e hospedar seu aplicativo web, você também pode usar o AWS Amplify Hosting, que fornece um fluxo de trabalho baseado em Git para hospedar aplicativos web completos e sem servidor com implantação contínua. O Amplify Hosting faz parte do AWS Amplify, que fornece um conjunto de ferramentas e recursos específicos que permitem que desenvolvedores front-end web e móveis criem aplicativos completos de forma rápida e fácil. AWS
Mais informações
Para lidar com URLs solicitações inválidas pelo usuário que podem gerar erros 403, uma página de erro personalizada configurada na CloudFront distribuição captura erros 403 e os redireciona para o ponto de entrada do aplicativo (). index.html
Para simplificar o gerenciamento do CORS, a API REST é exposta por meio de uma CloudFront distribuição.