1

Ich bin neu im Serverless Framework. Naja, zumindest bis zur neusten Version, die stark von CloudFormation abhängig ist.Serverless Framework: Wie erfolgt die Bereitstellung mit CloudFormation?

ich den Rahmen global auf meinem Computer installiert werden:

npm install -g serverless 

ich dann einen Dienst erstellt mit:

serverless create --template aws-nodejs --path myService 

Schließlich lief ich:

serverless deploy 

Alles scheint darauf hinzu normal bereitstellen, zeigt es keinen Fehler im Terminal. Ich kann die CloudFormation-Dateien in einem neu erstellten, dedizierten S3-Bucket sehen.

Allerdings kann ich die Lambda-Funktion hello in der AWS Lambda-Konsole nicht finden.

Was fehlt mir? Sollen die CloudFormation-Dateien nach der Bereitstellung keine Lambda-Funktionen erstellen?

Antwort

2

Der Grund für die Standard hello Lambda-Funktion nicht aufgeführt ist in der AWS Lambda-Konsole ist, weil Ihre Lambda-Funktion wurde in die Standardregion (us-east-1) hochgeladen, während die Lambda-Konsole die Funktionen einer anderen Region anzeigt.

Um die richtige Region für Ihre Funktionen festzulegen, können Sie das Regionsfeld der Datei serverless.yml verwenden.

Stellen Sie sicher, dass sich die Region-Eigenschaft direkt unter dem Provider-Abschnitt befindet. Mit 2/4 Leerzeichen. Wie folgt aus:

provider: 
    region: eu-west-1 

Alternativ können Sie die Region zum Zeitpunkt der Bereitstellung angeben, etwa so:

sls deploy --region eu-west-1 
+1

Es ist nicht notwendig, 4 Felder für die Identifizierung zu verwenden. Ich benutze nur 2 Leerzeichen und es funktioniert gut. Was die YAML-Spezifikation erfordert, ist Konsistenz. – Zanon

+1

Außerdem ist es nicht notwendig, die Region direkt unter dem Anbieter zu platzieren. Sie können andere Eigenschaften zwischen ihnen festlegen. – Zanon

+1

@Zanon mit direkt unter ich meine unter dem Anbieter. Irgendwo. Es ist einfach, es außerhalb des Providerbereichs zu platzieren. Und mit 4 Leerzeichen versuche ich erneut, den Zweifel zu beseitigen, dass die Region im Provider-Bereich eingerückt ist. – doorstuck

0

Duh, hatte ich einen super dummen Fehler gemacht:

I did not properly set the AWS region 

Also, ich war für eine Lambda-Funktion in der falschen Region suchen: natürlich ist es konnte nicht gefunden werden!

Vor der Bereitstellung, muss man sicherstellen, dass die richtige Region einzustellen

UPDATE Naja, eigentlich habe ich die Region in serverless.yml indem sie gesetzt hatte:

region: eu-west-1 

jedoch aus irgendeinem Grund Der Standardbereich wurde nicht überschrieben und die Funktion wurde in der falschen Region bereitgestellt. Seltsam, dass.

Wie auch immer, eine einfache Möglichkeit, um dieses Problem ist es, die Region zum Zeitpunkt der Bereitstellung zur Verfügung zu stellen:

sls deploy --region eu-west-1 
+0

Welche Version von serverless verwenden Sie? Wo im Serverless.Yml-Datei hast du Region? Es funktioniert für mich mit der Region in serverless.yml. – doorstuck

+0

@doorstuck: serverlose Version ist 1.5.0; Ich habe das Feld region in der Datei serverless.yml auskommentiert, direkt unter '#Sie können hier die Voreinstellungen überschreiben' – Manube

+0

Okay. Stellen Sie nur sicher, dass es direkt unter dem Provider-Bereich ist. Mit 4 Leerzeichen. Dann bin ich mir sicher, dass es funktionieren wird. – doorstuck

Verwandte Themen