Unggah artefak lokal ke bucket S3 dengan AWS CLI - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Unggah artefak lokal ke bucket S3 dengan AWS CLI

Untuk beberapa properti sumber daya yang memerlukan lokasi Amazon S3 (nama bucket dan nama file), Anda dapat menentukan referensi lokal sebagai gantinya. Misalnya, Anda dapat menentukan lokasi S3 dari kode sumber AWS Lambda fungsi Anda atau file Terbuka Amazon API Gateway REST API API (sebelumnya Swagger). Alih-alih mengunggah file secara manual ke bucket S3 dan kemudian menambahkan lokasi ke template Anda, Anda dapat menentukan referensi lokal, yang disebut artefak lokal, di template Anda dan kemudian menggunakan packageCLIperintah untuk mengunggahnya dengan cepat. Artefak lokal adalah jalur ke file atau folder yang diunggah package perintah ke Amazon S3. Misalnya, artefak dapat berupa jalur lokal ke kode sumber AWS Lambda fungsi Anda atau API file REST API Terbuka Amazon API Gateway.

Jika Anda menentukan file, perintah secara langsung mengunggahnya ke bucket S3. Setelah mengunggah artifact, perintah menampilkan salinan templat Anda, mengganti referensi ke artifact lokal dengan lokasi S3 tempat perintah mengunggah artifact. Kemudian, Anda dapat menggunakan template yang ditampilkan untuk membuat atau memperbarui tumpukan.

Jika Anda menentukan folder, perintah membuat .zip file untuk folder, dan kemudian mengunggah .zip file. Jika Anda tidak menentukan jalur, perintah akan membuat .zip file untuk direktori kerja, dan mengunggahnya. Anda dapat menentukan jalur absolut atau relatif, dimana jalur relatif bersifat relatif untuk lokasi templat Anda.

Anda dapat menggunakan artifact lokal untuk atribut sumber daya yang didukung perintah package saja. Untuk informasi selengkapnya tentang perintah ini dan daftar properti sumber daya yang didukung, lihat packagedokumentasi dalam Referensi AWS CLI Perintah.

Templat berikut menentukan artifact lokal untuk kode sumber fungsi Lambda. Kode sumber disimpan di folder /home/user/code/lambdafunction pengguna.

Template asli

{ "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" } } } }

packagePerintah berikut membuat .zip file yang berisi folder kode sumber fungsi, dan kemudian mengunggah .zip file ke folder root amzn-s3-demo-bucket bucket.

Perintah package

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

Perintah menyimpan templat yang dihasilkannya ke jalur yang ditentukan oleh pilihan --output-template-file. Perintah menggantikan artefak dengan lokasi Amazon S3, seperti yang ditunjukkan pada contoh berikut:

Template yang dihasilkan

{ "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>" } } } }