

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
<a name="using-cfn-cli-package"></a>

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 [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html)perintah 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 OpenAPI file 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 [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html)dokumentasi di [Referensi AWS CLI Perintah](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/index.html).



## Prasyarat
<a name="using-cfn-cli-package-prerequisites"></a>

Sebelum memulai, Anda harus memiliki bucket Amazon S3 yang ada. 

## Package dan deploy template dengan artefak lokal
<a name="package-and-deploy-a-template-with-local-artifacts"></a>

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

[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html)Perintah 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-file packaged-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. [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/)

```
aws cloudformation deploy \
  --template-file packaged-template.json \
  --stack-name stack-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-name stack-name \
  --s3-bucket amzn-s3-demo-bucket
```

**catatan**  
Untuk contoh lain menggunakan **package** perintah untuk mengunggah artefak lokal, lihat[Pisahkan template menjadi potongan-potongan yang dapat digunakan kembali menggunakan tumpukan bersarang](using-cfn-nested-stacks.md).