Ein Entwickler verwendet AWS SAM, um eine Lambda-Funktion zu prototypisieren. Die AWS::Serverless::Function des SAM-Templates hat CodeUri, das auf einen S3-Speicherort verweist. Der Entwickler hat die Funktion als package.zip gepackt, in den S3-Speicherort hochgeladen und sam deploy ausgeführt. Nach dem Aktualisieren des Funktionscodes und dem Wiederholen derselben Schritte (Hochladen auf denselben S3-Schlüssel) schlägt sam deploy mit der Meldung „no changes to deploy“ fehl. Welche Ansätze werden den aktualisierten Code bereitstellen? (Wählen Sie zwei.)
Wählen Sie eine Antwort
Tippen Sie auf eine Option, um Ihre Antwort zu überprüfen.
Richtige Antwort: Ändern Sie die Eigenschaft CodeUri so, dass sie auf den lokalen Code-Ordner verweist, und führen Sie sam deploy aus., Ändern Sie die Eigenschaft CodeUri so, dass sie auf den lokalen Code-Ordner verweist, führen Sie aws cloudformation package aus, um Artefakte nach S3 hochzuladen, und verwenden Sie dann aws cloudformation deploy..
Warum dies die Antwort ist
Wenn CodeUri auf einen S3-Speicherort verweist und der Inhalt des S3-Objekts aktualisiert wird, erkennt CloudFormation standardmäßig keine Änderung, da der S3-Pfad (Schlüssel) gleich bleibt. Die erste korrekte Methode ist, CodeUri auf den lokalen Code-Ordner zu setzen und sam deploy auszuführen. sam deploy führt intern sam package aus, das den Code zippt, einen eindeutigen S3-Pfad für die neue Version generiert und den Code dorthin hochlädt. Dies stellt sicher, dass CloudFormation eine Änderung im Template (neuer S3-Pfad) erkennt und die Lambda-Funktion aktualisiert. Die zweite korrekte Methode ist, CodeUri auf den lokalen Code-Ordner zu setzen, dann aws cloudformation package zu verwenden, um Artefakte in S3 hochzuladen (was ebenfalls einen eindeutigen S3-Pfad generiert), und anschließend aws cloudformation deploy auszuführen. Dies ist der manuelle Prozess, den sam deploy automatisiert, und erreicht dasselbe Ziel. Die Verwendung von aws cloudformation update-stack oder update-stack-instances würde das Problem nicht lösen, da sie die zugrunde liegende Erkennung von Änderungen am S3-Objekt nicht beeinflussen. Das Erstellen und Ausführen eines Change-Sets würde ebenfalls keine Änderung erkennen, solange der CodeUri-Pfad im Template gleich bleibt.
Bestehen Sie Ihre Prüfung – ohne endlose Antwortsuche
Erhalten Sie jede verifizierte Frage und Erklärung für diese Prüfung an einem Ort und sparen Sie Stunden der Vorbereitung. Über 1.000 Zertifizierungen · Über 20 Sprachen · Kostenloser Start.
Bestehen Sie Ihre Prüfung schneller → Keine Karte erforderlich