es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Framework sin servidores – Nuevo resolutor de variables.

Cuando ejecuto sls offline, me encuentro con una advertencia de deprecación:

Serverless: Advertencia de deprecación: El resolutor de variables informa los siguientes errores de resolución:
– Error de sintaxis en la variable en “functions.Test.environment.TESTURL”: Tipo de variable no válido en el índice 20 en “${file(./env.yml):${‘${self:provider.stage}.TESTURL’}}”
A partir de una próxima versión importante, esto se comunicará con un error lanzado.
Configura “variablesResolutionMode: 20210326” en la configuración de tu servicio para adaptarte al nuevo comportamiento ahora

La documentación no es clara al respecto.

env.yml

dev: 
  TEST_URL: https://example.com/

serverless.yml

frameworkVersion: '2'

...

functions:
  Test:
    handler: handler.test
    environment:
      TEST<em>URL: ${file(./env.yml):${'${self:provider.stage}.TEST</em>URL'}} # <-------

Funciona correctamente con frameworkVersion (>=1.1.0 <2.0.0).

¿Cuál es un nuevo enfoque para obtener datos de otro archivo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El nuevo enfoque para obtener datos de otro archivo es usar la sintaxis ${file(variables_file.yml):variable_name} en lugar de la sintaxis ${file(variables_file.yml):${self:custom.variable_name}}. Por lo tanto, en el ejemplo dado, la nueva sintaxis será:

    functions:
      Test:
        handler: handler.test
        environment:
          TEST_URL: ${file(env.yml):${self:provider.stage}.TEST_URL}} # <-------
    

    Además, para adaptarse al nuevo comportamiento ahora y evitar la advertencia de obsolescencia, agregue variablesResolutionMode: 20210326 a la sección de configuración del servicio en serverless.yml. El archivo serverless.yml actualizado se verá así:

    frameworkVersion: '2'
    
    ...
    
    service:
      name: tu-nombre-de-servicio
      variablesResolutionMode: 20210326
    
    functions:
      Test:
        handler: handler.test
        environment:
          TEST_URL: ${file(env.yml):${self:provider.stage}.TEST_URL}} # <-------
    

    Al establecer variablesResolutionMode en 20210326, se aplicará el nuevo comportamiento del resolutor.

Comments are closed.