AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com

Página creada Mateo Álvarez
 
SEGUIR LEYENDO
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify
                  Guía del usuario de la consola

AWS Amplify: Guía del usuario de la consola
Copyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,
in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits
Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not
be affiliated with, connected to, or sponsored by Amazon.
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola

Table of Contents
  ¿Qué es la consola de AWS Amplify? ................................................................................................... 1
        ¿Qué son las aplicaciones web modernas? .................................................................................... 1
        Características de la consola de Amplify ........................................................................................ 1
        Paso siguiente ........................................................................................................................... 2
  Introducción ....................................................................................................................................... 3
        Paso 1: Conectar un repositorio ................................................................................................... 3
        Paso 2: Confirmar la configuración de compilaciones para el front-end ................................................ 4
        Paso 3: Confirmar la configuración de compilaciones para el backend ................................................ 5
        Paso 4: Añadir variables de entorno (Opcional) ............................................................................... 6
        Paso 5: Guardar e implementar .................................................................................................... 6
        Pasos siguientes ........................................................................................................................ 7
  Configuración de dominios personalizados ............................................................................................. 8
        Añadir un dominio personalizado administrado en Amazon Route 53 .................................................. 8
        Añadir un dominio personalizado administrado por un proveedor de DNS de terceros ............................ 9
        Incorporación de subdominios ..................................................................................................... 11
        Guía para solucionar problemas .................................................................................................. 12
              Terminología técnica ......................................................................................................... 13
              ¿Cómo verifico que mi CNAME llega a una resolución? .......................................................... 14
              Mi dominio alojado con un tercero está bloqueado en estado Pending Verification (Verificación
              pendiente) ........................................................................................................................ 15
              Mi dominio alojado con AWS Route53 está bloqueado en estado Pending Verification
              (Verificación pendiente) ...................................................................................................... 15
              Error CNAMEAlreadyExistsException ................................................................................... 16
  Conexión a dominios personalizados de terceros ................................................................................... 17
        Conexión a un dominio GoDaddy ................................................................................................ 17
        Conexión a un dominio de Google .............................................................................................. 20
  Configuración de los ajustes de compilación ......................................................................................... 21
        Sintaxis de especificación de YML .............................................................................................. 21
        Configuración de compilación específica de ramificación ................................................................. 22
        Acceso a una subcarpeta ........................................................................................................... 23
        Implementación del backend con su front-end ............................................................................... 23
        Configuración de la carpeta de salida .......................................................................................... 23
        Instalación de paquetes como parte de la compilación .................................................................... 23
        Uso de un registro npm privado .................................................................................................. 24
        Instalación de paquetes de SO ................................................................................................... 24
        Almacenamiento clave-valor para todas las compilaciones .............................................................. 24
        Deshabilitación de las compilaciones automáticas .......................................................................... 25
  Implementación de aplicaciones web sin servidor de pila completa ........................................................... 26
  Implementaciones de ramificaciones de características ........................................................................... 29
        Flujos de trabajo de equipo con entornos de backend de la CLI de Amplify ........................................ 30
              Flujo de trabajo de ramificación de característica ................................................................... 13
              Flujo de trabajo de GitFlow ................................................................................................ 33
              Entorno de pruebas por desarrollador .................................................................................. 34
        Implementaciones de ramificaciones de características de ramificaciones basadas en patrones ............. 36
  Implementaciones manuales ............................................................................................................... 38
        Arrastrar y colocar .................................................................................................................... 38
        Amazon S3 o cualquier URL ...................................................................................................... 38
  Botón de implementación con un clic ................................................................................................... 40
        Incorporación del botón "Deploy to Amplify Console" (Implementar en la consola de Amplify) en su
        repositorio o blog ...................................................................................................................... 40
  Uso de redireccionamientos ............................................................................................................... 41
        Tipos de redireccionamientos ..................................................................................................... 41
        Partes de un redireccionamiento ................................................................................................. 42
        Orden de redireccionamientos .................................................................................................... 42

                                                                         iii
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola

      Redireccionamientos y reescrituras sencillos .................................................................................             43
      Redireccionamientos para aplicaciones de página web única (SPA) ..................................................                         44
      Reescritura a proxy inverso ........................................................................................................       44
      Barras finales y URL limpias ......................................................................................................        45
      Marcadores de posición .............................................................................................................       45
      Consultar parámetros de cadenas y ruta ......................................................................................              45
      Redireccionamientos basados en región .......................................................................................              46
Restricción del acceso .......................................................................................................................   47
Variables de entorno .........................................................................................................................   48
      Configuración de variables de entorno .........................................................................................            48
      Acceso a las variables de entorno ...............................................................................................          49
      Variables de entorno de la consola de Amplify ..............................................................................               49
Encabezados personalizados ..............................................................................................................        51
      Ejemplo: encabezados de seguridad ............................................................................................             51
Webhooks entrantes ..........................................................................................................................    53
Compilaciones personalizadas ............................................................................................................        55
      Imágenes de compilación personalizadas .....................................................................................               55
            Configuración de una imagen de compilación personalizada ....................................................                        55
            Requisitos de las imágenes de compilación personalizadas .....................................................                       56
      Actualizaciones de paquetes en directo ........................................................................................            56
            Configuración de las actualizaciones en directo .....................................................................                57
Compatibilidad con CloudFormation .....................................................................................................          59
Creación de un rol de servicio ............................................................................................................      60
      Paso 1: Iniciar sesión en la consola de IAM ..................................................................................             60
      Paso 2: Crear un rol de Amplify ..................................................................................................         60
      Paso 3: Volver a la consola de Amplify ........................................................................................            61
Administración del rendimiento de la aplicación .....................................................................................            62

                                                                     iv
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola
                               ¿Qué son las aplicaciones web modernas?

¿Qué es la consola de AWS Amplify?
     La consola de AWS Amplify es un servicio continuo de entrega y alojamiento para aplicaciones web
     modernas. La consola de AWS Amplify simplifica la implementación del front-end y backend de la
     aplicación. Conecte al repositorio de códigos y el front-end y el backend se implementan en un único
     flujo de trabajo en cada confirmación de códigos. Así se garantiza que la aplicación web se actualice solo
     después de haber realizado correctamente la implementación, lo que elimina inconsistencias entre el
     front-end y el backend de la aplicación. La consola de AWS Amplify facilita el proceso de compilación,
     implementación y alojamiento de sus aplicaciones web para dispositivos móviles, lo que le permite iterar
     rápidamente comentarios y obtener nuevas características para los usuarios con mayor rapidez.

¿Qué son las aplicaciones web modernas?
     Las aplicaciones web modernas se construyen como una sola página de aplicaciones web con un paquete
     para todos los componentes de la aplicación en archivos estáticos. Las arquitecturas web de servidores
     de cliente tradicionales conducen a experiencias pobres, cada clic o búsqueda necesita un trayecto de
     recorrido al servidor, volver a representar la aplicación completa. Las aplicaciones web modernas ofrecen
     experiencias de usuario similares a las aplicaciones mediante un front-end de aplicación, o interfaz de
     usuario, de manera eficiente hacia los buscadores como archivos de HTML/JavaScript prediseñados que
     pueden entonces invocar la funcionalidad de backend sin volver a cargar la página.

     La funcionalidad de las aplicaciones web modernas se suele distribuir entre varios lugares, tales como
     base de datos, servicios de autenticación, código de front-end que se ejecuta en el navegador y lógica
     de negocio de backend o funciones AWS Lambda, que se ejecutan en la nube. Esto hace que la
     implementación de aplicaciones sea compleja y que consuma mucho tiempo, ya que los desarrolladores
     tienen que coordinar con cuidado implementaciones en el front-end y en el backend para evitar
     implementaciones parciales o fallidas. La consola de AWS Amplify simplifica la implementación del front-
     end y backend en un único flujo de trabajo.

     La consola de AWS Amplify admite los marcos comunes de Single Page App (SPA) (por ejemplo, React,
     Angular, Vue.js, Ionic, Ember), como así también los generadores estáticos de sitio como Gatsby,
     Eleventy, Hugo, VuePress y Jekyll.

Características de la consola de Amplify
     Con la consola de Amplify, puede hacer lo siguiente:

     • Conecte su repositorio (GitHub, BitBucket, GitLab y AWS CodeCommit) y la consola de Amplify detecta
       automáticamente la configuración de compilación de front-end junto con la funcionalidad de backend
       aprovisionada con la CLI de Amplify (cadena de herramientas de línea de comando para crear backends
       sin servidor).
     • Administrar entornos de producción y ensayo para su front-end y backend conectando nuevas
       ramificaciones.
     • Las implementaciones atómicas eliminan las ventanas de mantenimiento al asegurar que la aplicación
       web se actualice cuando se haya completado la implementación completa. Esto elimina las situaciones
       en las que los archivos no se cargan correctamente.
     • Conectar a su dominio personalizado. Si administra su dominio en Amazon Route 53, la consola de
       Amplify conecta automáticamente la raíz (sudominio.com), subdominios www (www.sudominio.com) y
       subdominios (https://dev.sudominio.com) de ramificación.

                                                    1
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola
                                           Paso siguiente

    • Obtenga capturas de pantalla de la aplicación en distintos dispositivos móviles para identificar problemas
      de diseño.
    • Configure las reescrituras y los redireccionamientos para mantener clasificaciones de SEO.
    • Proteja su aplicación web mediante contraseña para poder trabajar en nuevas características sin hacer
      que estén accesibles públicamente.

Paso siguiente
    Empezar (p. 3) con la consola de Amplify.

                                                   2
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola
                                   Paso 1: Conectar un repositorio

Introducción
     En este tutorial, aprenderá a compilar, implementar y alojar de forma continua una aplicación web
     moderna. Las aplicaciones web modernas incluyen marcos de trabajo Single Page App (SPA) (por
     ejemplo, React, Angular o Vue) y generadores de sitios estáticos (SSG) (por ejemplo, Hugo, Jekyll o
     Gatsby).

     Para comenzar, inicie sesión en la consola de Amplify y elija Get Started (Empezar) en Deploy
     (Implementar).

Paso 1: Conectar un repositorio
     Conecte sus repositorios de GitHub, Bitbucket, GitLab o AWS CodeCommit. También tiene la opción
     de cargar manualmente sus artefactos de compilación sin necesidad de conectar un repositorio de Git
     (consulte el artículo sobre las implementaciones manuales (p. 38)). Después de autorizar la consola
     de Amplify, Amplify obtiene un token de acceso del proveedor del repositorio, pero no lo almacena en los
     servidores de AWS. Amplify obtiene acceso a su repositorio utilizando claves de implementación instaladas
     solo en un repositorio específico.

     Después de conectarse al proveedor de servicios de repositorio, seleccione un repositorio y, a
     continuación, elija una ramificación correspondiente para compilar e implementar.

                                                    3
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola
                                  Paso 2: Confirmar la configuración
                                  de compilaciones para el front-end

Paso 2: Confirmar la configuración de
compilaciones para el front-end
     Para la ramificación seleccionada, Amplify inspecciona el repositorio para detectar automáticamente la
     secuencia de comandos de compilación que se va a ejecutar.

     Importante: compruebe que el directorio de salida de compilación y comandos de compilación (es decir,
     artifacts > baseDirectory [artefactos > baseDirectory]) es correcto. Si tiene que modificar esta información,
     elija Edit (Editar) para abrir el editor YML. Puede guardar la configuración de compilación en nuestros
     servidores, o bien puede descargar el archivo YML y añadirlo a la raíz de su repositorio (para monorepos,
     almacene el archivo YML en el directorio raíz de la aplicación).

                                                     4
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola
                                 Paso 3: Confirmar la configuración
                                 de compilaciones para el backend

     Para obtener más información, consulte Estructura de YML (p. 21).

Paso 3: Confirmar la configuración de
compilaciones para el backend
     Si ha conectado un repositorio aprovisionado por la versión 1.0+ de la CLI de Amplify (ejecute amplify -
     v para buscar la versión de la CLI), la consola de Amplify implementará o actualizará automáticamente
     recursos de backend (cualquier recurso aprovisionado por la CLI de Amplify) en un solo flujo de trabajo
     con la compilación de front-end. Puede elegir apuntar un entorno de backend existente a su ramificación, o
     bien crear un entorno completamente nuevo. Para ver un tutorial paso a paso, consulte Implementación de
     backends sin servidor con el front-end (Beta) (p. 26).

                                                   5
AWS Amplify Guía del usuario de la consola - AWS Amplify: Guía del usuario de la consola - Amazon.com
AWS Amplify Guía del usuario de la consola
                              Paso 4: Añadir variables de entorno (Opcional)

     Para implementar la funcionalidad de backend mediante la interfaz de línea de comandos (CLI) de Amplify
     durante la compilación, cree o reutilizar un rol de servicio de IAM. Los roles de IAM son una manera segura
     de conceder permisos a la consola de Amplify para actuar en los recursos de su cuenta.

     Nota: la interfaz de línea de comandos (CLI) de Amplify no ejecutará sin un rol de servicio de IAM
     habilitado.

Paso 4: Añadir variables de entorno (Opcional)
     Casi todas las aplicaciones necesitan obtener información de configuración en tiempo de ejecución.
     Estas configuraciones pueden ser los detalles de conexión de base de datos, claves de API o parámetros
     diferentes. Las variables de entorno proporcionan un medio de exponer estas configuraciones en el
     momento de la compilación.

Paso 5: Guardar e implementar
     Revise toda la configuración para garantizar que todo se haya configurado correctamente. Elija Save and
     deploy (Guardar e implementar) para implementar su aplicación web en una red de entrega de contenido
     (CDN) global. La compilación de front-end suele tardar de 1 a 2 minutos, pero puede variar en función del
     tamaño de la aplicación.

     Acceda a la pantalla de registros de compilación seleccionando un indicador de progreso en el mosaico de
     la ramificación. Una compilación tiene las siguientes etapas:

     1. Aprovisionamiento: el entorno de compilación se configura mediante una imagen de Docker en un host
        con 4 vCPU, 7 GB de memoria. Cada compilación obtiene su propia instancia de host, lo que garantiza
        que todos los recursos se aíslen de forma segura. Se muestra el contenido del archivo de Docker para
        garantizar que la imagen predeterminada sea compatible con sus requisitos.
     2. Compilación: la fase de compilación consta de tres etapas: configuración (clona el repositorio en
        contenedor), implementar backend (ejecuta la CLI de Amplify para implementar recursos de backend) y
        compilar front-end (compila los artefactos del front-end).
     3. Implementación: cuando se completa el proceso de compilación, todos los artefactos se implementan
        en un entorno de alojamiento administrado por Amplify. Cada implementación es atómica: las
        implementaciones atómicas eliminan los períodos de mantenimiento asegurándose de que la aplicación
        web solo se actualice después de haber completado toda la implementación.

                                                    6
AWS Amplify Guía del usuario de la consola
                                          Pasos siguientes

    4. Verificación: para verificar que la aplicación funciona correctamente, Amplify reproduce capturas de
       pantalla de index.html en varias resoluciones de dispositivos con Headless Chrome.

Pasos siguientes
    • Añadir un dominio personalizado a su aplicación (p. 8)
    • Administrar varios entornos (p. 29)

                                                   7
AWS Amplify Guía del usuario de la consola
                                 Añadir un dominio personalizado
                                administrado en Amazon Route 53

Configuración de dominios
personalizados
    Puede conectar un dominio personalizado adquirido a través de registradores de dominio (por ejemplo,
    Amazon Route 53, GoDaddy y Google Domains) para su aplicación. Al implementar su aplicación web con
    la consola de Amplify, se aloja en:

    https://branch-name.d1m7bkiki6tdw1.amplifyapp.com

    Cuando se utiliza un dominio personalizado, los usuarios ven que la aplicación se aloja en una URL, como
    la siguiente:

    https://www.awesomedomain.com

    La consola de Amplify emite un certificado SSL para todos los dominios conectados a su aplicación,
    de modo que todo el tráfico se protege a través de HTTPS/2. El certificado SSL generado por Amazon
    Certificate Manager es válido durante 30 días y se renueva automáticamente siempre y cuando la
    aplicación se aloje con Amplify.

    Temas
     • Añadir un dominio personalizado administrado en Amazon Route 53 (p. 8)
     • Añadir un dominio personalizado administrado por un proveedor de DNS de terceros (p. 9)
     • Incorporación de subdominios (p. 11)
     • Guía para solucionar problemas (p. 12)

Añadir un dominio personalizado administrado en
Amazon Route 53
    Después de implementar la aplicación, puede añadir un dominio personalizado que administre mediante
    Amazon Route 53.

    1. En el panel de navegación izquierdo, seleccione App Settings (Configuración de aplicación), Domain
       management (Administración de dominio) y, a continuación, Add domain (Añadir dominio).

    2. En Enter your root domain (Introduzca su dominio raíz), introduzca su dominio raíz (https://
       awesomedomain.com). A medida que comience a escribir, aparecen en la lista los dominios raíz que

                                                  8
AWS Amplify Guía del usuario de la consola
                             Añadir un dominio personalizado administrado
                                por un proveedor de DNS de terceros

      administre en Amazon Route 53 (https://awesomedomain.com). Seleccione el dominio que desea utilizar
      y, a continuación, elija Configure Domain (Configurar dominio).

    3. De forma predeterminada, la consola de Amplify añade automáticamente dos entradas para
       https://www.myroute53domain.com y https://myroute53domain.com con una configuración de
       redireccionamiento desde el subdominio www al dominio raíz (puede cambiarla eligiendo Rewrites and
       redirects [Reescrituras y redireccionamientos] en el menú izquierdo). Puede modificar la configuración
       predeterminada si desea añadir solo subdominios. Consulte la sección acerca de cómo conectar
       subdominios (p. 11). Elija Save (Guardar) después de configurar su dominio.

    Nota: El DNS puede tardar hasta 24 horas en propagarse y emitir el certificado SSL. Para obtener más
    información acerca de los mensajes de estado, consulte Asociación de un dominio.

Añadir un dominio personalizado administrado por
un proveedor de DNS de terceros
    Después de implementar la aplicación, puede añadir un dominio personalizado que administre con un
    proveedor de DNS de terceros si no utiliza Amazon Route 53.

    1. En el panel de navegación izquierdo, seleccione App Settings (Configuración de aplicación), Domain
       management (Administración de dominio) y, a continuación, Add domain (Añadir dominio).
    2. En Enter your root domain (Introduzca su dominio raíz), introduzca su dominio raíz (https://
       awesomedomain.com) y, a continuación, elija Configure domain (Configurar dominio). Si el dominio está

                                                   9
AWS Amplify Guía del usuario de la consola
                         Añadir un dominio personalizado administrado
                            por un proveedor de DNS de terceros

  registrado, una alerta verde se lo notifica para continuar siempre que sea el propietario del dominio. Si el
  dominio está disponible, adquiera un dominio en Amazon Route 53.

3. De forma predeterminada, la consola de Amplify añade dos entradas para https://
   www.awesomedomain.com y https://awesomedomain.com con una configuración de redireccionamiento
   desde el subdominio www al dominio raíz. Puede modificar la configuración predeterminada si desea
   añadir solo subdominios. Consulte la sección acerca de cómo conectar subdominios (p. 11). Elija
   Save (Guardar) después de configurar su dominio.
4. Dado que el dominio se administra externamente, debe configurar de forma manual su proveedor de
   DNS (por ejemplo, GoDaddy o Google Domains). Elija View DNS records (Ver registros DNS) en el
   banner de alerta.

5. Actualice los registros CNAME y ALIAS de los proveedores de DNS, tal y como se indica a continuación.
   Para GoDaddy y Google Domains, consulte las instrucciones paso a paso en Conexión a dominios
   personalizados de terceros (p. 17).
  a. Para generar un certificado SSL para su dominio, la consola de Amplify necesita verificar la
     propiedad. Configurar un CNAME para apuntar al servidor de validación. Una vez que la consola de
     Amplify valide la propiedad de su dominio, todo el tráfico se servirá mediante HTTPS/2.
  b. Configure el registro de CNAME para apuntar sus subdominios (https://*.awesomedomain.com) al
     dominio amplifyapp. NOTA: Si tiene tráfico de producción, se recomienda que actualice su registro
     CNAME una vez que el estado de su dominio sea AVAILABLE.
  c. Configure el registro de ANAME/ALIAS para apuntar al dominio raíz (https://awesomedomain.com)
     al dominio amplifyapp. Los registros ANAME le permiten apuntar la raíz de su dominio a un
     nombre de host. Para los proveedores de DNS que no admiten ANAME/ALIAS, le recomendamos
     encarecidamente migrar su DNS a Amazon Route 53.
     **

                                               10
AWS Amplify Guía del usuario de la consola
                                   Incorporación de subdominios

         NOTA: Si tiene tráfico de producción, se recomienda que actualice su registro ANAME una vez que el
         estado de su dominio sea AVAILABLE.*

    Importante: la verificación de la propiedad del dominio y la propagación de DNS para dominios de terceros
    puede tardar hasta 48 horas. Para obtener más información acerca de los mensajes de estado, consulte
    Asociación de un dominio.

Incorporación de subdominios
    Un subdominio es la parte de la URL que aparece antes de su nombre de dominio (por ejemplo, www.
    amazon.com o aws. amazon.com).

    1. Añada solo un subdominio: si ya tiene un sitio web de producción, es posible que solo quiera conectar
       un subdominio (p. ej., https://alpha.mydomain.com). Puede hacerlo eligiendo Exclude root (Excluir raíz)
       y modificando el subdominio a alpha (alfa) como se muestra a continuación.

    2. Añada un subdominio multinivel: es posible que quiera conectar un subdominio multinivel (p. ej., https://
       beta.alpha.mydomain.com). Puede hacerlo escribiendo alpha.mydomain.com en la barra de búsqueda
       de dominios, eligiendo Exclude root (Excluir raíz) y modificando el subdominio a beta como se muestra a
       continuación.

                                                  11
AWS Amplify Guía del usuario de la consola
                                 Guía para solucionar problemas

    3. Administre subdominios: tras añadir su dominio, es posible que quiera añadir más subdominios. Elija
       Manage subdomains (Administrar subdominios) en la pantalla Domain management (Administración de
       dominios) y edite sus subdominios.

Guía para solucionar problemas
    Esta guía le ayudará a solucionar aquellos problemas relativos a la configuración de un dominio
    personalizado en la consola de AWS Amplify.

    Temas
     • Terminología técnica (p. 13)
     • ¿Cómo verifico que mi CNAME llega a una resolución? (p. 14)
     • Mi dominio alojado con un tercero está bloqueado en estado Pending Verification (Verificación
       pendiente) (p. 15)
     • Mi dominio alojado con AWS Route53 está bloqueado en estado Pending Verification (Verificación
       pendiente) (p. 15)
     • Error CNAMEAlreadyExistsException (p. 16)

                                                  12
AWS Amplify Guía del usuario de la consola
                                   Terminología técnica

Terminología técnica
1. CNAME: un CNAME (nombre de registro canónico) es un tipo de registro de DNS que le permite
   enmascarar el dominio para un conjunto de páginas web y hacer que aparezcan como si se
   encontrasen en otros lugares. Los CNAME apuntan un subdominio a un nombre de dominio completo
   (FQDN). Por ejemplo, podemos crear un nuevo registro CNAME para asignar el subdominio
   www.myawesomesite.com al dominio FQDN branch-name.d1m7bkiki6tdw1.amplifyapp.com asignado a
   nuestra aplicación.
2. ANAME: un registro ANAME es como un registro CNAME, pero en el nivel raíz. Un ANAME apuntará la
   raíz de su dominio a un FQDN. En realidad, dicho FQDN apuntará a una dirección IP.
3. Servidor de nombres: un servidor de nombres es un servidor de Internet especializado en gestionar
   consultas acerca de la ubicación de los diversos servicios de un nombre de dominio. Si tiene su
   configuración de dominio en AWS Route53, tendrá una lista de servidores de nombres asignados a su
   dominio.

Configuración de dominios personalizados en la consola de AWS Amplify

Al crear un nuevo dominio en la consola de Amplify, hay varios pasos que deben seguirse para poder ver
su aplicación a través de su dominio personalizado.

1. Creación de SSL: la consola de AWS Amplify emite un certificado SSL para configurar un dominio
   personalizado seguro.
2. Configuración/verificación de SSL: antes de emitir un certificado SSL, la consola de Amplify debe
   verificar que es el propietario del dominio. Para los dominios administrados por Route53, actualizaremos
   automáticamente el registro de verificación de DNS. Para los dominios administrados fuera de Route53,
   tendrá que añadir manualmente el registro de verificación de DNS mostrado en el proveedor de DNS de
   su dominio.
3. Activación del dominio: el dominio se verifica correctamente. Para los dominios administrados fuera
   de Route53, tendrá que añadir manualmente los registros CNAME proporcionados en la consola en el
   proveedor de DNS de su dominio.

                                              13
AWS Amplify Guía del usuario de la consola
                     ¿Cómo verifico que mi CNAME llega a una resolución?

Descripción de la verificación de DNS

DNS son las siglas de sistema de nombres de dominio y se suele hacer referencia a estas siendo una
agenda de teléfonos, traduciendo nombres inteligibles (dominios) a direcciones idóneas para equipos
(direcciones IP).

Al escribir https://google.com en el navegador, se realiza una búsqueda en el proveedor de DNS para
encontrar la dirección IP del servidor que aloja el sitio web.

Los proveedores de DNS contienen registros de dominios y sus direcciones IP correspondientes. Estos
son los registros de DNS que se usan con más frecuencia.

1. Registro A: apunta el subdominio o dominio raíz a una dirección IP
2. Registro CNAME: apunta un subdominio a un FQDN (nombre de dominio completo)
3. Registro NS: apunta a servidores que buscarán los detalles de sus dominios.

Existen varios servicios gratuitos en Internet que puede usar para verificar sus registros de DNS. Por
ejemplo, whatsmydns.net.

La consola de Amplify usa un registro CNAME para verificar que posee su dominio personalizado. Si
aloja su dominio con AWS Route53, la verificación se lleva a cabo en su nombre. Sin embargo, si aloja su
dominio con un tercero, tendrá que ir manualmente a su configuración de DNS y añadir un nuevo registro
CNAME.

¿Cómo verifico que mi CNAME llega a una
resolución?
Tras su actualización de DNS, puede usar una herramienta como dig o un sitio web gratuito como
whatsmydns.net para verificar que sus registros CNAME llegan a una resolución.

Al hacer clic en la opción de búsqueda, debe comprobar que en los resultados se muestra que su CNAME
llega a una resolución.

                                               14
AWS Amplify Guía del usuario de la consola
                      Mi dominio alojado con un tercero está bloqueado en
                      estado Pending Verification (Verificación pendiente)

De forma similar, puede comprobar los otros registros de DNS.

Mi dominio alojado con un tercero está bloqueado en
estado Pending Verification (Verificación pendiente)
Lo primero que querrá hacer es verificar si sus registros CNAME llegan a una resolución. Consulte el paso
anterior para obtener instrucciones. Si los registros CNAME no llegan a una resolución, debe confirmar que
la entrada CNAME existe en su proveedor de DNS.

Note: If you added or updated your CNAME records a few hours after you
created your app, this will most likely cause your app to get stuck in
the pending verification state. It is important that you update your
CNAME records as soon as you create your custom domain.

Una vez que su aplicación se crea en la consola de Amplify, sus registros CNAME se comprueban cada
pocos minutos para determinar si llega a una resolución. Si no llega a una resolución transcurrida una
hora, la comprobación se realizará cada pocas horas, lo que puede provocar un retraso en su dominio listo
para usar.

Por último, si ha confirmado la existencia de los registros CNAME, puede haber un problema con su
proveedor de DNS. Puede contactar con el proveedor de DNS para diagnosticar el motivo por el cual el
CNAME de verificación de DNS no llega a una resolución o migrar su DNS a Route53.

Mi dominio alojado con AWS Route53 está bloqueado
en estado Pending Verification (Verificación pendiente)
Si ha transferido su dominio a AWS Route53, es posible que su dominio tenga unos servidores de nombres
distintos de los emitidos por la consola de Amplify al crearse su aplicación. Inicie sesión en la consola de
Route53, elija Hosted Zones (Zonas hospedadas) en el panel de navegación izquierdo y elija el dominio
que va a conectar. Registre los valores de servidor de nombres.

                                              15
AWS Amplify Guía del usuario de la consola
                           Error CNAMEAlreadyExistsException

A continuación, elija Registered domains (Dominios registrados) en el panel de navegación izquierdo.
Asegúrese de que los servidores de nombres de la pantalla de dominios registrados coinciden con lo que
ha copiado de la zona hospedada.

Si esto no ha resuelto el problema, envíe un mensaje de correo electrónico a aws-amplify-
customer@amazon.com.

Error CNAMEAlreadyExistsException
Esto significa que uno de los nombres de host que ha intentado conectar (podría ser un subdominio o
el dominio de ápex) ya se ha implementado en otra distribución de AWS CloudFront. A continuación se
explica cómo puede diagnosticar el problema:

1. Compruebe la consola de AWS CloudFront para ver si tiene este dominio implementado en cualquier
   otra distribución. A la vez, solo puede tener un solo registro CNAME asociado a una distribución de
   CloudFront.
2. ¿Está conectado este dominio a una aplicación de Amplify distinta de la que posee? En caso afirmativo,
   asegúrese de que no intenta reutilizar uno de los nombres de host. Si usa www.domain.com en la otra
   aplicación, no podrá utilizar www.domain.com con esta aplicación. Puede usar otros subdominios como
   blog.domain.com.
3. Si tenía este dominio conectado correctamente a otra aplicación y se ha eliminado recientemente (en
   la última hora), espere y vuelva a intentarlo más tarde. Si sigue viendo esta excepción transcurridas
   6 horas, contacte con nosotros en aws-amplify-customer@amazon.com.

                                              16
AWS Amplify Guía del usuario de la consola
                                  Conexión a un dominio GoDaddy

Conexión a dominios personalizados
de terceros
Conexión a un dominio GoDaddy
    1. Siga las instrucciones para añadir un dominio (p. 8) de proveedores de terceros.
    2. Inicie sesión en su cuenta en GoDaddy y elija DNS.

    3. Añada registros CNAME para apuntar los subdominios al dominio de Amplify y otro registro CNAME
       para apuntar al servidor de validación de Amazon Certificate Manager. Un único ACM validado genera
       un certificado SSL para el dominio. Asegúrese de introducir solo el subdominio (por ejemplo, ) en
       **Host* como se muestra a continuación (no escriba sunombrededominio.com).

    GoDaddy no admite registros ANAME/ALIAS. Para proveedores de DNS que no admiten ANAME/ALIAS,
    le recomendamos encarecidamente migrar su DNS a Amazon Route 53. Si desea mantener su proveedor

                                                  17
AWS Amplify Guía del usuario de la consola
                             Conexión a un dominio GoDaddy

actual y actualizar el dominio raíz, añada Forwarding (Reenvío) y configure un reenvío de dominios. En
Forward to (Reenviar a), introduzca la información como se muestra a continuación:

                                              18
AWS Amplify Guía del usuario de la consola
    Conexión a un dominio GoDaddy

                   19
AWS Amplify Guía del usuario de la consola
                                 Conexión a un dominio de Google

Conexión a un dominio de Google
    1. Siga las instrucciones para añadir un dominio (p. 8) de proveedores de terceros.
    2. Inicie sesión en su cuenta en https://domains.google y elija DNS.

    3. En Registros de recurso personalizados, introduzca los registros de CNAME a donde desea apuntar
       todos los subdominios (https://*.awesomedomain.com) al dominio amplifyapp y otro registro de CNAME
       para apuntar al servidor de validación de Amazon Certificate Manager. Un único ACM validado genera
       un certificado SSL para el dominio.

    Los dominios de Google no admiten registros ANAME/ALIAS. Para proveedores de DNS que no admiten
    ANAME/ALIAS, le recomendamos encarecidamente migrar su DNS a Amazon Route 53. Si desea
    mantener su proveedor actual y actualizar el dominio raíz, añada un Synthetic Record (Registro sintético)
    y configure un Subdomain Forward (Reenvío de subdominio). En Subdomain (Subdominio), introduzca el
    símbolo @ y, a continuación, elija Forward path (Ruta de reenvío) como se muestra a continuación:

                                                  20
AWS Amplify Guía del usuario de la consola
                                 Sintaxis de especificación de YML

Configuración de los ajustes de
compilación
    La consola de Amplify detecta automáticamente el marco de trabajo del front-end y la configuración de la
    compilación asociada inspeccionando el archivo package.json en el repositorio. Dispone de las opciones
    siguientes:

    • Guarde la configuración de compilación en la consola de Amplify: la consola de Amplify detecta
      automáticamente la configuración de la compilación y la guarda de forma que se pueda acceder a través
      de la consola de Amplify. Esta configuración se aplica a todas las ramificaciones a menos que exista un
      archivo que YML en el repositorio.
    • Guarde la configuración de compilación en el repositorio: descargue el archivo amplify.yml y añádalo a la
      raíz de su repositorio (o a la raíz de la carpeta de aplicación para monorepos).

    Puede editar estos ajustes en la consola de Amplify eligiendo App Settings>Build settings (Configuración
    de aplicación>Configuración de compilación). Esta configuración de compilación se aplica a todas las
    ramificaciones de la aplicación, excepto a las ramificaciones que tienen un archivo YML guardado en el
    repositorio.

Sintaxis de especificación de YML
    El archivo YML de especificación de compilación contiene un conjunto de comandos de compilación y
    ajustes relacionados que la consola de Amplify utiliza para ejecutar la compilación. El archivo YML está
    estructurado del siguiente modo:

    version: 1.0
    env:
      variables:
           key: value
    backend:
      phases:
         preBuild:
           commands:
             - *enter command*
         build:
           commands:
             - *enter command*
         postBuild:
             commands:
             - *enter command*
    frontend:
      phases:
         preBuild:
           commands:
             - cd react-app
             - npm ci
         build:
           commands:
             - npm run build

                                                  21
AWS Amplify Guía del usuario de la consola
                         Configuración de compilación específica de ramificación

      artifacts:
        files:
             - location
             - location
        discard-paths: yes
        baseDirectory: location
      cache:
        paths:
             - path
             - path
      customHeaders:
       - pattern: 'file-pattern'
         headers:
         - key: 'custom-header-name'
           value: 'custom-header-value'
         - key: 'custom-header-name'
           value: 'custom-header-value'

    • version: representa el número de versión de YML de la consola de Amplify.
    • env: añade variables de entorno a esta sección. También puede añadir variables de entorno a través de
      la consola.
    • backend: ejecute comandos de la interfaz de línea de comandos (CLI) de Amplify para aprovisionar un
      backend, actualizar las funciones Lambda o esquemas de GraphQL en el marco de la implementación
      continua. Aprenda a implementar un backend con el front-end (p. 26).
    • frontend: ejecute los comandos de compilación del front-end.
    • Tanto el front-end como el backend tienen tres fases que representan la ejecución de comandos durante
      cada secuencia de la compilación.
          • preBuild: el script preBuild se ejecuta antes de que se inicie la compilación real, pero después de
            haber instalado dependencias.
          • build: los comandos de compilación.
          • postBuild: el script post-build se ejecuta una vez que ha finalizado la compilación y hemos copiado
            todos los artefactos necesarios en el directorio de salida.
    • artifacts>base-directory: el directorio en el que están los artefactos de compilación.
    • artifacts>files: especifique archivos desde el artefacto que desea implementar. **/* es para incluir todos
      los archivos.
    • customHeaders: reglas del encabezado personalizado establecidas en los archivos implementados.
      Consulte el artículo sobre los encabezados personalizados (p. 51).

Configuración de compilación específica de
ramificación
    Puede usar scripts de shell bash para establecer la configuración de compilación específica de
    ramificación. Por ejemplo, el siguiente script usa la variable de entorno del sistema $AWS_BRANCH para
    ejecutar un conjunto de comandos si el nombre de ramificación es maestra y otro conjunto de comandos si
    el nombre de ramificación es desarrollo.

    frontend:
      phases:
        build:
          commands:
            - if [ "${AWS_BRANCH}" = "master" ]; then echo "master branch"; fi
            - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi

                                                    22
AWS Amplify Guía del usuario de la consola
                                     Acceso a una subcarpeta

Acceso a una subcarpeta
     Para monorepos, los usuarios quieren poder utilizar cd en una carpeta para ejecutar la compilación.
     Después de ejecutar el comando cd, se aplica a todas las etapas de la compilación por lo que no es
     necesario que repita el comando en fases independientes.

     version: 1.0
     env:
       variables:
            key: value
     frontend:
       phases:
          preBuild:
            commands:
              - cd react-app
              - npm ci
          build:
            commands:
              - npm run build

Implementación del backend con su front-end
     amplifyPush es un script auxiliar que le ayuda con las implementaciones del backend. La configuración de
     compilación siguiente determina automáticamente el entorno de backend correcto que se va a implementar
     para la ramificación actual.

     version: 1.0
     env:
       variables:
            key: value
     backend:
       phases:
          build:
            commands:
              - amplifyPush --simple

Configuración de la carpeta de salida
     La siguiente configuración de compilación establece el directorio de salida en la carpeta pública.

     frontend:
       phases:
         commands:
           build:
             - yarn run build
       artifacts:
         baseDirectory: public

Instalación de paquetes como parte de la
compilación
     Puede utilizar npm o yarn para instalar paquetes durante la compilación.

                                                    23
AWS Amplify Guía del usuario de la consola
                                 Uso de un registro npm privado

    frontend:
      phases:
        build:
          commands:
            - npm install -g pkg-foo
            - pkg-foo deploy
            - yarn run build
      artifacts:
        baseDirectory: public

Uso de un registro npm privado
    Puede añadir referencias a un registro privado en la configuración de compilación o añadirlo como variable
    de entorno.

    build:
      phases:
        preBuild:
           commands:
             - npm config set     
             - npm config set    registry https://registry.npmjs.org
             - npm config set    always-auth true
             - npm config set    email hello@amplifyapp.com
             - yarn install

Instalación de paquetes de SO
    Puede instalar paquetes de SO para las dependencias que faltan.

    build:
      phases:
        preBuild:
           commands:
             - yum install -y 

Almacenamiento clave-valor para todas las
compilaciones
    envCache proporciona almacenamiento clave-valor en el momento de la compilación. Los valores
    almacenados en envCache solo se pueden modificar durante una compilación y se pueden volver a utilizar
    durante la siguiente compilación. Mediante envCache, podemos almacenar información en el entorno
    implementado y hacer que esté disponible para el contenedor de compilación en compilaciones sucesivas.
    A diferencia de los valores almacenados en envCache, los cambios en las variables de entorno durante
    una compilación no se almacenan de forma persistente en futuras compilaciones.

    Ejemplo de uso:

    envCache --set  
    envCache --get 

                                                  24
AWS Amplify Guía del usuario de la consola
                           Deshabilitación de las compilaciones automáticas

Deshabilitación de las compilaciones automáticas
    Puede configurar la consola de Amplify para deshabilitar las compilaciones automáticas en todas
    las confirmaciones de código. Para la configuración, elija App settings > General (Configuración de
    la aplicación > General) y, a continuación, desplácese hasta la sección con todas las ramificaciones
    conectadas. Seleccione una ramificación y, a continuación, elija Action > Disable auto build (Acción >
    Deshabilitar compilación automática). Las confirmaciones adicionales en esa ramificación dejarán de
    desencadenar una nueva compilación.

                                                  25
AWS Amplify Guía del usuario de la consola

Tutorial sin servidor: Implementación
del backend con su front-end
   La consola de Amplify permite a los desarrolladores crear aplicaciones con el marco de trabajo de Amplify
   para implementar de forma continua actualizaciones en su backend y front-end en cada confirmación de
   código. Con la consola de Amplify puede implementar backends sin servidor con las API de GraphQL y
   de REST, autenticación, análisis y almacenamiento creados por la interfaz de línea de comandos (CLI) de
   Amplify. Nota: Esta característica solo funciona con la versión 1.0+ de la CLI de Amplify.

   En este tutorial, vamos a crear e implementar una aplicación React que implementa un flujo de
   autenticación básico para la inscripción o el inicio de sesión de usuarios, así como el direccionamiento del
   lado del cliente protegido mediante AWS Amplify.

   • Si usa otro marco de front-end o categoría de backend de Amplify, se pueden aplicar los mismos pasos
     a la implementación de su backend o front-end con la consola de Amplify. El código final para este
     proyecto está disponible como ejemplo en GitHub.
   • Si ya tiene una aplicación de Amplify existente, salte al paso 6.

   1. Instale la CLI de Amplify para inicializar un nuevo proyecto de Amplify.

     npm install -g @aws-amplify/cli

   2. Inicialice la CLI en la raíz de su proyecto y asigne a su entorno el nombre producción. Puede usar la CLI
      de Amplify para añadir la funcionalidad de backend a su aplicación. La funcionalidad de backend incluye
      todas las categorías de nube como, por ejemplo, autenticación, análisis, API y almacenamiento.

     create-react-app myapp
     cd myapp
     amplify init
      Enter a name for the environment: prod

   3. Añada la autenticación con el inicio de sesión, la inscripción y la autenticación multifactor a su
      aplicación. Acepte todos los valores predeterminados y envíe la configuración del proyecto actualizada a
      AWS. Implementará un recurso de Amazon Cognito que permite la autenticación de usuario.

     amplify add auth
     
     ...
     amplify push

   4. Actualice su código de front-end para añadir el componente HOC withAuthenticator a su App.js como
      se muestra aquí. Pruebe su aplicación localmente para asegurarse de que ve una pantalla de inicio de
      sesión.

     npm start

   5. Confirme su código y cárguelo en un proveedor de Git que elija (la consola de Amplify admite GitHub,
      BitBucket, GitLab y AWS CodeCommit).

                                                  26
AWS Amplify Guía del usuario de la consola

6. Inicie sesión en la consola de Amplify y elija Get Started (Empezar) en Deploy (Implementar). Conecte
   su ramificación, repositorio y proveedor de Git y, a continuación, elija Next (Siguiente).
7. La consola de Amplify detecta automáticamente que su repositorio tiene un backend de Amplify. En el
   menú desplegable, elija producción (el entorno que acaba de crear con la CLI). Esto hará que la consola
   actualice automáticamente el backend de producción cada vez que confirme los cambios realizados en
   su repositorio.

8. Elija Next (Siguiente) y Save and deploy (Guardar e implementar). La compilación de la aplicación se
   iniciará implementando el backend seguido del front-end. Haga clic en su nombre de ramificación para
   ver la compilación en ejecución. Cuando su compilación se realice correctamente, debe poder acceder a
   su aplicación.

                                              27
AWS Amplify Guía del usuario de la consola

                   28
AWS Amplify Guía del usuario de la consola

Implementaciones de ramificaciones
de características y flujos de trabajo
de equipo
   La consola de Amplify se ha diseñado para trabajar con la ramificación de características y los flujos de
   trabajo de GitFlow. La consola de Amplify utiliza ramificaciones de Git para crear nuevas implementaciones
   cada vez que un desarrollador conecta una nueva ramificación en su repositorio. Después de conectar
   su primera ramificación, puede crear una nueva implementación de ramificaciones de características
   añadiendo una ramificación tal y como se indica a continuación:

   1. En la página de lista de ramificación, seleccione Connect branch (Conectar ramificación).
   2. Elija una ramificación de su repositorio.
   3. Guarda y, a continuación, implemente su aplicación.

   La aplicación ahora tiene dos implementaciones disponibles en https://master.appid.amplifyapp.com
   y https://dev.appid.amplifyapp.com. Esto puede variar de un equipo a otro, pero normalmente la
   ramificación maestra rastrea el código de versión y es su ramificación de producción. La ramificación de
   desarrollo se usa como ramificación de integración para probar nuevas características. De esta forma, los
   evaluadores beta pueden probar características que todavía no se han publicado en la implementación de
   ramificaciones de desarrollo, sin que ello afecte a ningún usuario final de producción en la implementación
   de ramificaciones maestras.

   Temas
    • Flujos de trabajo de equipo con entornos de backend de la CLI de Amplify (p. 30)
    • Implementaciones de ramificaciones de características de ramificaciones basadas en
      patrones (p. 36)

                                                  29
También puede leer