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.
Lokale Artefakte in einen S3-Bucket mit der Bezeichnung AWS CLI hochladen
Sie können den verwenden AWS CLI , um lokale Artefakte, auf die von einer CloudFormation Vorlage verwiesen wird, in einen Amazon S3 S3-Bucket hochzuladen. Lokale Artefakte sind Dateien, auf die Sie in Ihrer Vorlage verweisen. Anstatt Dateien manuell in einen S3-Bucket hochzuladen und dann deren Speicherorte zu Ihrer Vorlage hinzuzufügen, können Sie lokale Artefakte in Ihrer Vorlage angeben und den Befehl package verwenden, um sie schnell hochzuladen.
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 eine Amazon API Gateway OpenAPI Gateway-REST-API-Datei sein.
Wenn Sie den Befehl package verwenden:
-
Wenn Sie eine Datei angeben, lädt der Befehl sie direkt in den S3-Bucket hoch.
-
Wenn Sie einen Ordner angeben, erstellt der Befehl eine
.zip-Datei für den Ordner und lädt dann die.zip-Datei 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.
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. Sie können dann die zurückgegebene Vorlage verwenden, um einen Stapel zu erstellen oder zu aktualisieren.
Anmerkung
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 package Dokumentation in der AWS CLI Befehlsreferenz.
Voraussetzungen
Bevor Sie beginnen, müssen Sie über einen Amazon S3 Bucket verfügen.
Paketieren und verteilen Sie eine Vorlage mit lokalen Artefakten
Die folgende Vorlage gibt das lokale Artefakt für den Quellcode einer Lambda-Funktion an. Der Quellcode wird im Ordner /home/user/code/lambdafunction 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 Befehl package erstellt und lädt eine .zip-Datei des Quellcode-Ordners der Funktion in das Stammverzeichnis des angegebenen Buckets hoch.
aws cloudformation package \ --s3-bucketamzn-s3-demo-bucket\ --template/path_to_template/template.json\ --output-template-filepackaged-template.json\ --output json
Der Befehl erzeugt eine neue Vorlage unter dem durch --output-template-fileangegebenen Pfad. Es ersetzt die Artefakt-Referenz durch den Amazon S3-Speicherort, wie unten gezeigt. Die .zip Datei wird anhand der MD5 Prüfsumme des Ordnerinhalts benannt und nicht anhand des Ordnernamens selbst.
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://amzn-s3-demo-bucket/md5 checksum"
}
}
}
}
Nachdem Sie die Artefakte Ihrer Vorlage verpackt haben, stellen Sie die verarbeitete Vorlage mit dem Befehl deploy bereit.
aws cloudformation deploy \ --template-filepackaged-template.json\ --stack-namestack-name
Wenn Sie Vorlagen bereitstellen, die größer als 51.200 Bytes sind, verwenden Sie den Befehl deploy mit der Option --s3-bucket, um Ihre Vorlage in S3 hochzuladen, wie im folgenden Beispiel.
aws cloudformation deploy \ --template-filepackaged-template.json\ --stack-namestack-name\ --s3-bucketamzn-s3-demo-bucket
Anmerkung
Ein weiteres Beispiel für die Verwendung des Befehls package zum Hochladen lokaler Artefakte finden Sie unter Aufteilung einer Vorlage in wiederverwendbare Teile mit verschachtelten Stapeln.