Laden Sie lokale Artefakte in einen S3-Bucket hoch mit dem AWS CLI - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Laden Sie lokale Artefakte in einen S3-Bucket hoch mit dem AWS CLI

Bei einigen Ressourceneigenschaften, die einen Amazon-S3-Speicherort (einen Bucket-Namen und Dateinamen) erfordern, können Sie stattdessen lokale Referenzen angeben. Sie können beispielsweise den S3-Speicherort des Quellcodes Ihrer AWS Lambda Funktion oder die Open-Datei API (früher Swagger) REST API von Amazon API Gateway angeben. Anstatt die Dateien manuell in einen S3-Bucket hochzuladen und dann den Speicherort zu Ihrer Vorlage hinzuzufügen, können Sie in Ihrer Vorlage lokale Verweise, sogenannte lokale Artefakte, angeben und sie dann mit dem packageCLIBefehl schnell hochladen. Ein lokales Artefakt ist ein Pfad zu einer Datei oder einem Ordner, die bzw. der mit dem package-Befehl in Amazon S3 hochgeladen wird. Ein Artefakt kann beispielsweise ein lokaler Pfad zum Quellcode Ihrer AWS Lambda Funktion oder die API Open-Datei eines Amazon API Gateways REST API sein.

Wenn Sie eine Datei angeben, lädt der Befehl sie direkt in den S3-Bucket hoch. Nach dem Hochladen der Artefakte gibt der Befehl eine Kopie Ihrer Vorlage zurück, wobei Verweise auf lokale Artefakte durch den S3-Speicherort ersetzt werden, in den der Befehl die Artefakte hochgeladen hat. Die zurückgegebene Vorlage können Sie dann zum Erstellen oder Aktualisieren eines Stacks verwenden.

Wenn Sie einen Ordner angeben, erstellt der Befehl eine .zip Datei für den Ordner und lädt die .zip Datei dann hoch. Wenn Sie keinen Pfad angeben, erstellt der Befehl eine .zip Datei für das Arbeitsverzeichnis und lädt sie hoch. Sie können einen absoluten oder relativen Pfad angeben, wobei der relative Pfad relativ zum Speicherort Ihrer Vorlage ist.

Sie können lokale Artefakte nur für Ressourceneigenschaften verwenden, die der package-Befehl unterstützt. Weitere Informationen zu diesem Befehl und eine Liste der unterstützten Ressourceneigenschaften finden Sie in der packageDokumentation in der AWS CLI Befehlsreferenz.

Die folgende Vorlage gibt das lokale Artefakt für den Quellcode einer Lambda-Funktion an. Der Quellcode ist im Ordner /home/user/code/lambdafunction des Benutzers gespeichert.

Originalvorlage

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "MyFunction": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "index.handler", "Runtime": "nodejs18.x", "CodeUri": "/home/user/code/lambdafunction" } } } }

Der folgende package Befehl erstellt eine .zip Datei, die den Quellcodeordner der Funktion enthält, und lädt die .zip Datei dann in den Stammordner des mybucket Buckets hoch.

package -Befehl

aws cloudformation package --s3-bucket mybucket \ --template /path_to_template/template.json \ --output-template-file packaged-template.json \ --output json

Der Befehl speichert die von ihm generierte Vorlage unter dem Pfad, der in der Option --output-template-file angegeben ist. Der Befehl ersetzt das Artefakt durch den Amazon-S3-Speicherort, wie im folgenden Beispiel dargestellt:

Resultierende Vorlage

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "MyFunction": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "index.handler", "Runtime": "nodejs18.x", "CodeUri": "s3://mybucket/<md5 checksum>" } } } }