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
Anda dapat menggunakan AWS CLI untuk mengunggah artefak lokal yang direferensikan oleh CloudFormation template ke bucket Amazon S3. Artefak lokal adalah file yang Anda referensi dalam template Anda. Alih-alih mengunggah file secara manual ke bucket S3 dan kemudian menambahkan lokasinya ke template Anda, Anda dapat menentukan artefak lokal di template Anda dan menggunakan packageperintah 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 file OpenAPI Amazon API Gateway REST API.
Saat menggunakan package perintah:
-
Jika Anda menentukan file, perintah secara langsung mengunggahnya ke bucket S3.
-
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.
Setelah mengunggah artifact, perintah menampilkan salinan templat Anda, mengganti referensi ke artifact lokal dengan lokasi S3 tempat perintah mengunggah artifact. Anda kemudian dapat menggunakan template yang dikembalikan untuk membuat atau memperbarui tumpukan.
catatan
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 di Referensi AWS CLI Perintah.
Prasyarat
Sebelum memulai, Anda harus memiliki bucket Amazon S3 yang ada.
Package dan deploy template dengan artefak lokal
Templat berikut menentukan artifact lokal untuk kode sumber fungsi Lambda. Kode sumber disimpan di /home/user/code/lambdafunction
folder.
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 dan mengunggah .zip
file folder kode sumber fungsi ke root bucket yang ditentukan.
aws cloudformation package \ --s3-bucket
amzn-s3-demo-bucket
\ --template/path_to_template/template.json
\ --output-template-filepackaged-template.json
\ --output json
Perintah menghasilkan template baru di jalur yang ditentukan oleh--output-template-file
. Ini menggantikan referensi artefak dengan lokasi Amazon S3, seperti yang ditunjukkan di bawah ini. .zip
File diberi nama menggunakan MD5 checksum dari isi folder, daripada menggunakan nama folder itu sendiri.
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
"
}
}
}
}
Setelah Anda mengemas artefak template Anda, gunakan template yang diproses menggunakan perintah. deploy
aws cloudformation deploy \ --template-file
packaged-template.json
\ --stack-namestack-name
Saat menerapkan template yang lebih besar dari 51.200 byte, gunakan deploy perintah dengan --s3-bucket
opsi untuk mengunggah template Anda ke S3, seperti pada contoh berikut.
aws cloudformation deploy \ --template-file
packaged-template.json
\ --stack-namestack-name
\ --s3-bucketamzn-s3-demo-bucket
catatan
Untuk contoh lain menggunakan package perintah untuk mengunggah artefak lokal, lihatPisahkan template menjadi potongan-potongan yang dapat digunakan kembali menggunakan tumpukan bersarang.