Saltar al contenido

Obtenga su aplicación en Cloud Platform Cloud Foundry

Permitirá que Cloud Foundry recupere automáticamente la aplicación de enrutador cuando se implemente. Para lograr esto, primero establecerá la estructura necesaria.

  1. Ve a tu favorito <destLocation> y crea el approuter directorio:

    cd <destLocation>
    mkdir approuter
    cd approuter
    
  2. Agregue lo siguiente package.json hago approuter directorio:

    {
      "name": "approuter",
      "dependencies": {
        "@sap/approuter": "*"
      },
      "scripts": {
        "start": "node node_modules/@sap/approuter/approuter.js"
      }
    }
    
  3. Dentro de <destLocation>/approuter crear un nuevo archivo llamado xs-app.json con el siguiente contenido:

    {
      "welcomeFile": "index.html",
      "routes": [{
        "source": "/",
        "target": "/",
        "destination": "app-destination"
        }]
    }
    
  4. Crea una última pero no menos importante manifest.yml archivo dentro <destLocation> para el servicio de micro enrutador de la aplicación con el siguiente contenido:


    --- applications: - name: approuter routes: - route: approuter-<subdomain>.cfapps.<region_id>.hana.ondemand.com path: approuter memory: 128M buildpacks: - nodejs_buildpack env: TENANT_HOST_PATTERN: 'approuter-(.*).cfapps.<region_id>.hana.ondemand.com' destinations: '[{"name":"app-destination", "url" :"<APPLICATION_URL>", "forwardAuthToken": true}]' services: - my-xsuaa

    Adapte el archivo de la siguiente manera:

    • Sustituir <subdomain> con su subdominio. Puede encontrar su subdominio en la cabina de CF dirigiéndose a la página de descripción general de su subcuenta:

    • Cambia ambos casos <region_id> con su región particular (p. ej. eu10). Puede encontrarlo, por ejemplo, incluido en el punto final de la API (también enumerado en la imagen de arriba) justo antes hana.ondemand.com. Se pueden encontrar más detalles sobre las URL específicas de la región. aquí.

    • I destinations en lugar de <APPLICATION_URL> con la URL real de una aplicación utilizada anteriormente. Nuevamente, puede obtenerlo en un bloque CF o enumerando todas las rutas disponibles a través de cf routes. Nota: el URI especificado para <APPLICATION_URL> debe estar completo, p. ej. https://<app-name>.cfapps.<region>.hana.ondemand.com.

Comprender el AppRouter manifest.yml

En Cloud Foundation, cada subcuenta se asigna directamente a un subdominio asociado con un inquilino. Para múltiples inquilinos, el enrutador de la aplicación necesita saber qué inquilino reenviar al servicio XSUAA. Esto se logra al incluir el subdominio en el host, del cual el enrutador de la aplicación lo eliminará. Eso es donde TENANT_HOST_PATTERN entra en juego. Es una variable que determina el patrón de cómo se identifican y manejan los inquilinos en la URL. Para este tutorial, esperamos que el anfitrión cumpla approuter-<subdomain>. Si desea diferentes patrones de URL, necesita el route y TENANT_HOST_PATTERN respectivamente.

Tenga en cuenta que el TENANT_HOST_PATTERN Las variables solo son necesarias en una verdadera aplicación multiinquilino, es decir, aplicaciones en las que la implementación física atiende a varios clientes de la misma implementación. Esta serie de tutoriales asume que desea crear aplicaciones multiinquilino, ya que se centra en el desarrollo nativo de la nube. Sin embargo, esta variable no es necesaria si tiene una solicitud de inquilino individual. Para lograr esto, el xs-security.json reportero de seguridad puede declarar "tenant-mode": "dedicated" (vea el paso 5 a continuación).

Pasando a la destinations entrada. Es una variable que confirma las rutas internas del App Router a los microservicios básicos de respaldo. Como solo tiene un microservicio todavía, solo puede definir un destino conocido app-destination aquí. SEO app-destination se refiere a las personas creadas antes xs-app.json expediente.

Por último, si bien no menos importante services Esta sección confirma su propio caso de servicio XSUAA para conectarse a la aplicación Router. Esta vinculación asegurará un correspondiente VCAP_SERVICES una entrada que contiene el ID de cliente, el secreto del cliente y la clave pública necesaria para validar cualquier token OAuth / JWT entrante del servicio XSUAA:

Servicio XSUAA

Conectar el servicio XSUAA

Ahora necesita crear un servicio que sea vinculante para el servicio XSUAA. Como requisito previo necesitas xs-security.json (reportero de seguridad) un archivo que contiene una declaración del alcance de la autorización que tiene la intención de utilizar en su solicitud. Por ejemplo, solo un DISPLAY alcance que se utilizará más tarde para autorizar a sus usuarios. Además, se denomina plantilla de roles. Viewer refiriéndose a nuestro DISPLAY se declara el alcance.

Envíe este archivo a <destLocation>/xs-security.json. Para obtener una explicación más detallada del alcance y las plantillas de funciones, consulte el apéndice de este tutorial. Más detalles sobre la sintaxis del xs-security.json disponible aquí.

Nota: Un xsappname debe ser único en todo el escenario XSUAA. Le sugerimos que siga el mismo patrón. <app-name>-<subdomain>.

Nota: Como se explicó anteriormente, el "tenant-mode": "shared" Acepta múltiples solicitudes de inquilinos y reclama la TENANT_HOST_PATTERN variables a declarar. También puedes usar "tenant-mode": "dedicated" si desarrolla una solicitud de inquilino individual.

<destLocation>/xs-security.json:

{
  "xsappname": "firstapp-<subdomain>",
  "tenant-mode": "shared",
  "scopes": [
    {
      "name": "$XSAPPNAME.Display",
      "description": "display"
    }
  ],
  "role-templates": [
    {
      "name": "Viewer",
      "description": "Required to view things in our solution",
      "scope-references"     : [
        "$XSAPPNAME.Display"
      ]
    }
  ]
}

Cree el archivo y cambie el nombre de la aplicación exactamente como antes.

Luego crea un ejemplo de un servicio llamado my-xsuaa del servicio XSUAA emitiendo el siguiente comando y el xs-security.json expediente:

cf create-service xsuaa application my-xsuaa -c xs-security.json

Si creó este ejemplo del servicio XSUAA anterior sin el xs-security.json parámetro, puede desconectar y eliminar el caso existente con estos comandos antes de crearlos con el comando anterior:

cf unbind-service firstapp my-xsuaa
cf delete-service my-xsuaa​

Después de crear el servicio XSUAA, implemente el enrutador de la aplicación utilizando lo siguiente (con el punto final de API apropiado en su región de Cloud Foundry):

cd <destLocation>
cf push

Luego, debería poder encontrar el enrutador de la aplicación dentro de su navegador utilizando el nombre de host de su implementación. Este es mi caso https://approuter-p1942765239trial.cfapps.eu10.hana.ondemand.com/hello si se le proporciona la siguiente página de inicio de sesión donde puede utilizar su correo electrónico de usuario y contraseña:

Acceso

Después de iniciar sesión, debe HelloWorld servlet que ahora sirve a la aplicación Router como proxy para su aplicación Java:

Hola Mundo

Hecho

Inicie sesión para responder la pregunta