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?
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á: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 enserverless.yml
. El archivoserverless.yml
actualizado se verá así:Al establecer
variablesResolutionMode
en20210326
, se aplicará el nuevo comportamiento del resolutor.