Lors de l'utilisation de variables dans la définition de VPC dans serverless.yml telles que:
vpc:
securityGroupIds:
- $ { self: custom.prod_sg_a }
- $ { self: custom.prod_sg_b }
subnetIds:
- $ { self: custom.prod_subnet_a }
- $ { self: custom.prod_subnet_b }
serverless renvoie l'erreur suivante lors du déploiement:
Sans serveur: le déploiement a échoué!
Erreur sans serveur ---------------------------------------
An error occurred while provisioning your stack: LambdaFunction
- Value of property SecurityGroupIds must be of type
List of String.
Obtenir de l'aide --------------------------------------------
Documents: docs.serverless.com
Bogues: github.com/serverless/serverless/issues
Informations sur votre environnement -----------------------------
OS: darwin
Version du nœud: 5.1.1
Version sans serveur: 1.6.1
Doit pouvoir utiliser des variables (y compris des variables imbriquées) pour prendre en charge le déploiement sur différents comptes et donc sur différents VPC.
J'utilise des variables pour cela mais c'est avec 1.3. Avez-vous votre fichier exact serverless.yml
?
Voici un exemple de la façon dont je fais cela. Il est modifié et peut donc ne pas être tout à fait correct, mais devrait vous donner un point de départ.
custom:
vpc:
securityGroupIds: ${self:custom.SecurityGroupId}
subnetIds: ${self:custom.SubnetId}
SubnetId:
- TBA
SecurityGroupId:
- TBA
functions:
test:
handler: handlers/test.handler
vpc: ${self:custom.vpc}
Merci! Cela semblait faire l'affaire. Doit définir la variable sous forme de liste plutôt que de liste de variables. Ou quelque chose comme ça. Appréciez l'aide!
EDIT: DISREGARD - J'avais copié cette configuration en ligne quelque part et elle a collé un trait d'union au lieu d'un tiret, ce qui a entraîné l'erreur que j'ai vue.
J'obtiens la même erreur. Je n'ai qu'un seul groupe de sécurité.
J'ai essayé les deux
provider:
name: aws
runtime: nodejs6.10
vpc:
securityGroupIds:
— "sg-abcdefg1"
subnetIds:
— "subnet-abcdefg1"
— "subnet-abcdefg2"
ET
provider:
name: aws
runtime: nodejs6.10
vpc:
securityGroupIds: "sg-abcdefg1"
subnetIds:
— "subnet-abcdefg1"
— "subnet-abcdefg2"
Est-ce juste un truc yaml?
EDIT: DISREGARD - J'avais copié cette configuration en ligne quelque part et elle a collé un trait d'union au lieu d'un tiret, ce qui a entraîné l'erreur que j'ai vue.
Commentaire le plus utile
EDIT: DISREGARD - J'avais copié cette configuration en ligne quelque part et elle a collé un trait d'union au lieu d'un tiret, ce qui a entraîné l'erreur que j'ai vue.
J'obtiens la même erreur. Je n'ai qu'un seul groupe de sécurité.
J'ai essayé les deux
ET
Est-ce juste un truc yaml?
EDIT: DISREGARD - J'avais copié cette configuration en ligne quelque part et elle a collé un trait d'union au lieu d'un tiret, ce qui a entraîné l'erreur que j'ai vue.