• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
FORMACIÓN SAP

Potencia de serverless con SAP BTP, Kyma runtime. Secretos montados como volúmenes.

By s4pcademy 


Arquitectura sin servidor Este resumen es para demostrar cómo se pueden aprovechar las funciones sin servidor del tiempo de ejecución de SAP BTP Kyma seleccionadas, a saber

  • cómo usar bibliotecas sap estándar para acceder a secretos montados como volúmenes
  • cómo usar SAP HANA Cloud con funciones usando @sap/hana-cliente biblioteca y otras bibliotecas estándar de SAP

El tema previamente demostrado fue:

SAP BTP, Kyma runtime es el programa comercial totalmente administrado de SAP kubernetes oferta, parte de SAP Business Technology Platform. A menudo se incluye con SAP Commerce Cloud y hoy en día se está convirtiendo en el tiempo de ejecución de extensibilidad de elección.

Kyma trae adicional componentes encima de un racimo de jardineros lisos. Y sin servidor es uno de ellos.

Arquitectura sin servidor

La entrega anterior demostró cómo anular una imagen de función base.

Otra característica genial y estratégica con Kyma serverless DRC es el capacidad de montar secretos como volúmenes.

Secretos montados como Volúmenes

Secretos montados como Volumen es una nueva característica introducida con el último kyma liberar.

Esto es realmente útil cuando se utilizan las bibliotecas SAP estándar de la talla de xsenv, xssec y otros con los servicios BTP provistos con el operador de servicio btp. y realmente esencial cuando se trata de implementar servicios portátiles multientorno con una sola línea de código.

Echemos un vistazo a un fragmento de una plantilla de una definición de función con el monturas secretas.

El monturas secretas permite asignar valores de los secretos de kubernetes a las rutas de montaje de volumen de una función. Las rutas de los montajes son como los directorios base en una estructura de carpetas y, combinadas con los nombres de las claves secretas, se convierten en las rutas de datos.

Por lo tanto, un código de función puede leer fácilmente valores de claves secretas de estas rutas de datos como si fueran archivos.

apiVersion: serverless.kyma-project.io/v1alpha2
kind: Function
metadata:
  name: {{ .Values.services.srv.name }}
  labels:
    {{- include "app.labels" . | nindent 4 }}
    app: {{ .Values.services.srv.name }}
spec:
  runtime: {{ .Values.services.srv.runtime }}

  env:
    - name: SERVICE_BINDING_ROOT
      value: /bindings

  secretMounts:
    - secretName: {{ .Values.services.uaa.bindingSecretName }}
      mountPath: "/bindings/fun-uaa"
    - secretName: {{ .Values.services.dest.bindingSecretNamex509 }}
      mountPath: "/bindings/fun-dest-x509"
    - secretName: {{ .Values.services.hdi.bindingSecretName }}
      mountPath: "/bindings/fun-hdi"
  source:
    gitRepository:

Eventualmente, así es como funciona con la mayoría de las bibliotecas SAP de uso común. estamos usando el SERVICIO_BINDING_ROOT variable env para definir el carpeta raíz del directorio de enlace (él recordó vinculante) para exponer los secretos de enlace de los servicios BTP de SAP montados a las bibliotecas de SAP que se pueden usar en el código de función.

De esta forma, cualquier código que dependa de las bibliotecas de SAP para manipular los secretos se puede usar en entornos de tiempo de ejecución sin modificaciones.

Uso de bibliotecas estándar de SAP con secretos montados

Vamos a ver cómo usar SAP HANA Cloud con funciones usando @sap/hana-cliente y otras bibliotecas de SAP.

El siguiente fragmento de código muestra las bibliotecas SAP más utilizadas:

const xsenv = require('@sap/xsenv');
const services = xsenv.getServices({
  uaa: { label: 'xsuaa' }
  ,
  hana: { label: 'hana' }
});

const util = require('util');
const xssec = require('@sap/xssec');
const createSecurityContext = util.promisify(xssec.createSecurityContext);

const hana = require('@sap/hana-client');
services.hana.sslValidateCertificate = true;
services.hana.ssltruststore = services.hana.certificate;
const hanaConn = hana.createConnection();

async function queryDB(sql, procedure, param) {
  try {
    await hanaConn.connect(services.hana);
  } catch (err) {
    debug('queryDB connect', err.message, err.stack);
    results = err.message;
  }
  try {
    await hanaConn.exec('SET SCHEMA ' + services.hana.schema);
    if (procedure === undefined) {
      results = await hanaConn.exec(sql);
    }
    else {
      let hanaStmt = await hanaConn.prepare(procedure);
      results = hanaStmt.exec(param);
    }
  } catch (err) {
    debug('queryDB exec', err.message, err.stack);
    results = err.message;
  }
  try {
    await hanaConn.disconnect();
  } catch (err) {
    debug('queryDB disconnect', err.message, err.stack);
    results = err.message;
  }
  return results;
}

y aquí van un par de llamadas simples contra una instancia de base de datos de SAP HANA Cloud:

const session = await queryDB(`SELECT * FROM M_SESSION_CONTEXT`);
const db = await queryDB(`SELECT SYSTEM_ID, DATABASE_NAME, HOST, VERSION, USAGE FROM M_DATABASE`);
const connections = await queryDB(`SELECT TOP 10 USER_NAME, CLIENT_IP, CLIENT_HOST, START_TIME FROM M_CONNECTIONS WHERE OWN='TRUE' ORDER BY START_TIME DESC`);

Esto concluye una breve excursión a la tierra de kyma serverless.

Por último, pero no menos importante, espero que hayas disfrutado leyendo la publicación del blog. Siéntase libre de proporcionar comentarios en la sección de comentarios a continuación.


Pre-requisitos:

SAP BTP, tiempo de ejecución de Kyma (SKR):

  • acceso de administrador a la subcuenta SAP BTP de la instalación del clúster SKR
  • acceso de administrador de clúster a SAP BTP, Kyma Runtime (SKR) clúster de kubernetes
  • acceso de administrador a cualquier otra subcuenta de SAP BTP (en la misma o en una cuenta global diferente) donde tenga el derecho de administrador de servicios de BTP

Nube SAP HANA (con herramientas multientorno de SAP HANA Cloud):

  • tener acceso a una instancia de base de datos de SAP HANA Cloud en cualquier subcuenta BTP

OS Kyma en jardinero:

  • trae tu propio grupo de jardineros con:
  • tener acceso de administrador a cualquier subcuenta de SAP BTP en la que tenga el derecho de administrador de servicios de BTP con el servicio-operador-acceso plan de servicio.

Descargo de responsabilidad:

  • Las imágenes/datos en esta publicación de blog provienen de bancos de pruebas personales, incluida mi propia cuenta SAP BTP Free Tier. Cualquier parecido con datos reales es pura coincidencia.
  • El acceso a algunos recursos en línea a los que se hace referencia en este blog puede estar sujeto a una relación contractual con SAP y es posible que se requiera un inicio de sesión de usuario S.




Habilitación del flujo de trabajo de la lista de precios en SAP Business ByDesign
Previo
¡La versión de febrero de 2023 de SAP Marketing Cloud ya está aquí!
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.