Cuando se utilizan variables en la definición de VPC en serverless.yml como:
vpc:
securityGroupIds:
- $ { self: custom.prod_sg_a }
- $ { self: custom.prod_sg_b }
subnetIds:
- $ { self: custom.prod_subnet_a }
- $ { self: custom.prod_subnet_b }
serverless arroja el siguiente error en la implementación:
Sin servidor: ¡la implementación falló!
Error sin servidor ---------------------------------------
An error occurred while provisioning your stack: LambdaFunction
- Value of property SecurityGroupIds must be of type
List of String.
Obtener apoyo --------------------------------------------
Documentos: docs.serverless.com
Errores: github.com/serverless/serverless/issues
Información de su entorno -----------------------------
SO: darwin
Versión de nodo: 5.1.1
Versión sin servidor: 1.6.1
Debería poder usar variables (incluidas variables anidadas) para admitir la implementación en diferentes cuentas y, por lo tanto, diferentes VPC.
Estoy usando variables para esto, pero es con 1.3. ¿Tiene su archivo serverless.yml
exacto?
A continuación se muestra un ejemplo de cómo lo estoy haciendo. Está modificado, por lo que puede que no sea exactamente correcto, pero debería proporcionarle un punto de partida.
custom:
vpc:
securityGroupIds: ${self:custom.SecurityGroupId}
subnetIds: ${self:custom.SubnetId}
SubnetId:
- TBA
SecurityGroupId:
- TBA
functions:
test:
handler: handlers/test.handler
vpc: ${self:custom.vpc}
¡Gracias! Eso pareció funcionar. Debe establecer la variable como una lista en lugar de una lista de variables. O algo así. ¡Agradezco la ayuda!
EDITAR: IGNORAR: había copiado esta configuración de en línea en algún lugar y pegué un guión en lugar de un guión, lo que resultó en el error que vi.
Recibo este mismo error. Solo tengo un grupo de seguridad.
He probado ambos
provider:
name: aws
runtime: nodejs6.10
vpc:
securityGroupIds:
— "sg-abcdefg1"
subnetIds:
— "subnet-abcdefg1"
— "subnet-abcdefg2"
Y
provider:
name: aws
runtime: nodejs6.10
vpc:
securityGroupIds: "sg-abcdefg1"
subnetIds:
— "subnet-abcdefg1"
— "subnet-abcdefg2"
¿Es esto solo una cosa de yaml?
EDITAR: IGNORAR: había copiado esta configuración de en línea en algún lugar y pegué un guión en lugar de un guión, lo que resultó en el error que vi.
Comentario más útil
EDITAR: IGNORAR: había copiado esta configuración de en línea en algún lugar y pegué un guión en lugar de un guión, lo que resultó en el error que vi.
Recibo este mismo error. Solo tengo un grupo de seguridad.
He probado ambos
Y
¿Es esto solo una cosa de yaml?
EDITAR: IGNORAR: había copiado esta configuración de en línea en algún lugar y pegué un guión en lugar de un guión, lo que resultó en el error que vi.