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
Sie können den verwenden AWS CLI , um lokale Artefakte, auf die eine CloudFormation Vorlage verweist, 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 ihre Speicherorte zu Ihrer Vorlage hinzuzufügen, können Sie lokale Artefakte in Ihrer Vorlage angeben und sie mit dem packageBefehl 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 OpenAPI-Datei einer Amazon API Gateway Gateway-REST-API sein.
Wenn Sie den package Befehl 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 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.
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 Stack 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 packageDokumentation in der AWS CLI Befehlsreferenz.
Voraussetzungen
Bevor Sie beginnen, müssen Sie über einen vorhandenen Amazon S3 S3-Bucket verfügen.
Eine Vorlage mit lokalen Artefakten verpacken und bereitstellen
Die folgende Vorlage gibt das lokale Artefakt für den Quellcode einer Lambda-Funktion an. Der Quellcode wird im /home/user/code/lambdafunction
Ordner 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 packageBefehl erstellt eine .zip
Datei mit dem Quellcode-Ordner der Funktion und lädt sie in das Stammverzeichnis des angegebenen Buckets hoch.
aws cloudformation package \ --s3-bucket
amzn-s3-demo-bucket
\ --template/path_to_template/template.json
\ --output-template-filepackaged-template.json
\ --output json
Der Befehl generiert eine neue Vorlage in dem von --output-template-file
angegebenen Pfad. Es ersetzt die Artefaktreferenz durch den Amazon S3 S3-Standort, 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 gepackt haben, stellen Sie die verarbeitete Vorlage mithilfe des deployBefehls bereit.
aws cloudformation deploy \ --template-file
packaged-template.json
\ --stack-namestack-name
Wenn Sie Vorlagen bereitstellen, die größer als 51.200 Byte sind, verwenden Sie den deploy Befehl mit der --s3-bucket
Option, Ihre Vorlage auf S3 hochzuladen, wie im folgenden Beispiel gezeigt.
aws cloudformation deploy \ --template-file
packaged-template.json
\ --stack-namestack-name
\ --s3-bucketamzn-s3-demo-bucket
Anmerkung
Ein weiteres Beispiel für die Verwendung des package Befehls zum Hochladen lokaler Artefakte finden Sie unter. Teilen Sie eine Vorlage mithilfe verschachtelter Stapel in wiederverwendbare Teile auf