

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

# Menggunakan Alat Migrasi AWS CLI v1-ke-v2 untuk meningkatkan CLI versi 1 ke CLI AWS versi 2 AWS
<a name="cli-migration-tool"></a>

Topik ini menjelaskan Alat Migrasi AWS CLI v1-ke-v2.

Kami merekomendasikan agar pengguna AWS CLI versi 1 meningkatkan ke AWS CLI versi 2 untuk mengakses fitur baru dan meningkatkan kinerja. Ada perubahan perilaku antara AWS CLI versi 1 dan AWS CLI versi 2 yang mungkin mengharuskan Anda memperbarui skrip atau perintah untuk mendapatkan perilaku yang sama. Alat Migrasi AWS CLI v1-to-v2 menganalisis skrip bash yang berisi perintah AWS CLI versi 1 dan mendeteksi penggunaan fitur yang telah diperbarui dengan perubahan yang melanggar pada CLI versi 2. AWS Selain itu, alat ini dapat secara otomatis memodifikasi skrip Anda untuk memperbaiki sebagian besar masalah yang dideteksinya. Alat ini meningkatkan pengalaman peningkatan dengan secara otomatis mendeteksi dan memodifikasi perintah AWS CLI versi 1 dalam skrip bash untuk mencegah masalah tak terduga saat memutakhirkan ke versi 2.

Dibandingkan dengan Upgrade Debug Mode, AWS CLI v1-to-v2 Migration Tool adalah alat mandiri dan tidak memerlukan eksekusi perintah CLI. AWS Untuk perbandingan menyeluruh antara Upgrade Debug Mode dan AWS CLI v1-to-v2 Migration Tool lihat di. [Menggunakan Alat Migrasi AWS CLI untuk Mengurangi Kerusakan](cliv2-migration.md#using-migration-tools) [Panduan migrasi untuk AWS CLI versi 2](cliv2-migration.md)

Untuk detail lebih lanjut, lihat [Memecahkan perubahan antara AWS CLI versi 1 dan AWS CLI versi 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) di[Fitur baru dan perubahan dalam AWS CLI versi 2](cliv2-migration-changes.md).

## Cara kerjanya
<a name="migration-tool-how-it-works"></a>

Alat Migrasi AWS CLI v1-to-v2 adalah paket Python yang mampu linting skrip bash yang menggunakan CLI versi 1. AWS Menjadi linter statis, itu tidak tergantung pada versi AWS CLI versi 1 yang mungkin telah Anda instal di mesin Anda. Linter dipanggil melalui baris perintah, di mana jalur file lokal ke skrip bash disediakan sebagai parameter.

Alat migrasi juga dapat secara otomatis menghasilkan skrip bash yang dimodifikasi yang menyelesaikan sebagian besar temuan yang dideteksi dengan memodifikasi perintah AWS CLI versi 1 yang digunakan dalam skrip. Alat migrasi memodifikasi perintah sehingga kompatibel dengan AWS versi 2 dan mempertahankan perilaku versi 1.

Untuk beberapa temuan, Alat Migrasi AWS CLI v1-ke-v2 dapat mendeteksi mereka tetapi tidak menawarkan perbaikan otomatis. Dalam kasus ini, alat migrasi menandai mereka sebagai deteksi yang memerlukan peninjauan manual.

Lihat [Batasan](#migration-tool-limitations) daftar lengkap perubahan yang melanggar dan perbaikan otomatis yang didukung oleh Alat Migrasi AWS CLI v1-ke-v2.

## Prasyarat
<a name="migration-tool-prerequisites"></a>

### Python
<a name="migration-tool-prerequisites-python"></a>

Untuk menggunakan alat ini, Anda harus menginstal Python 3.9 atau yang lebih baru.

Untuk memverifikasi bahwa Anda memiliki versi Python yang benar diinstal, jalankan perintah berikut di terminal dan konfirmasikan output menunjukkan versi Python minimal 3.9.

```
$ python3 --version
```

Jika Anda memiliki versi Python yang lebih lama, atau tidak menginstal Python, Anda dapat mengunduh versi yang kompatibel dari halaman unduhan [Python](https://www.python.org/downloads/) resmi.

### pip
<a name="migration-tool-prerequisites-pip"></a>

Selain menginstal versi Python yang kompatibel, Anda harus `pip` menginstal.

Untuk memverifikasi bahwa `pip` sudah diinstal, jalankan perintah berikut:

```
$ python3 -m pip --version
```

Jika Anda telah `pip` menginstal, Anda akan melihat output yang mirip dengan yang berikut:

```
pip 25.0.1 from ~/.local/lib/python3.13/site-packages (python 3.13)
```

Jika Anda belum `pip` menginstal, lihat [Instal pip](https://docs.aws.amazon.com/cli/v1/userguide/install-linux.html#install-linux-pip-pip).

## Penginstalan
<a name="migration-tool-installation"></a>

Instal Alat Migrasi AWS CLI v1-ke-v2 di lingkungan virtual baru:

```
$ python3 -m venv .venv
$ source .venv/bin/activate
$ python3 -m pip install aws-cli-migrate
```

## Penggunaan
<a name="migration-tool-usage"></a>

### Mode Jalankan kering (default)
<a name="migration-tool-usage-dryrun"></a>

Dengan mode dry-run, Anda dapat secara otomatis mendeteksi perintah AWS CLI versi 1 yang dapat merusak perubahan tanpa memodifikasi skrip input:

```
$ migrate-aws-cli --script upload_s3_files.sh
```

### Mode Perbaikan Otomatis
<a name="migration-tool-usage-autofix"></a>

Dengan mode perbaikan otomatis, Anda dapat secara otomatis mendeteksi dan memperbarui perintah AWS CLI versi 1 dalam skrip input untuk mengurangi kerusakan dari perubahan yang diperkenalkan di AWS CLI versi 2, jika memungkinkan:

```
$ migrate-aws-cli --script upload_s3_files.sh --fix
```

Secara opsional, Anda dapat menyediakan jalur output melalui `--output` parameter untuk menulis skrip yang diperbarui, daripada memperbarui skrip input:

```
$ migrate-aws-cli --script upload_s3_files.sh --output upload_s3_files_v2.sh --fix
```

### Mode Interaktif
<a name="migration-tool-usage-interactive"></a>

Dengan mode interaktif, Anda dapat secara otomatis mendeteksi perintah AWS CLI versi 1 yang dapat merusak perubahan. Sebagian besar temuan akan menunjukkan perbaikan yang disarankan untuk mengurangi kerusakan di CLI versi 2 AWS . Anda dapat meninjau perbaikan yang disarankan dan memutuskan apakah akan menerapkannya. Secara opsional, berikan jalur keluaran melalui `--output` parameter untuk mengontrol tempat menulis skrip yang diperbarui:

```
$ migrate-aws-cli --script upload_s3_files.sh --interactive \
--output upload_s3_files_v2.sh
```

Cuplikan keluaran berikut adalah contoh temuan dalam mode interaktif:

```
14 14│ 
15 15│ aws s3 ls s3://mybucket
16 16│ 
17   │-aws s3 cp s3://amzn-demo-bucket s3://amzn-demo-bucket2 --recursive
   17│+aws s3 cp s3://amzn-demo-bucket s3://amzn-demo-bucket2 --recursive --copy-props none
18 18│ 
19 19│ TEMPLATE_KEY="cloudformation/$(basename "$TEMPLATE_FILE")"
20 20│ 

examples/upload_s3_files.sh:17 [s3-copy] In AWS CLI v2, object properties will be copied 
from the source in multipart copies between S3 buckets. If a copy is or becomes multipart 
after upgrading to AWS CLI v2, extra API calls will be made. See 
https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration-changes.html#cliv2-migration-s3-copy-metadata.

Apply this fix? [y] yes, [n] no, [a] accept all of type, [r] reject all of type, [u] update all, 
[s] save and exit, [q] quit:
```

Perbaikan yang disarankan ditampilkan dalam format yang mirip dengan perbedaan Git. Alat migrasi menyarankan penghapusan baris yang dimulai dengan a`-`, dan menyarankan menambahkan baris yang dimulai dengan a`+`. Pada contoh sebelumnya, saran dapat diartikan sebagai menambahkan `--copy-props none` parameter ke perintah AWS CLI versi 1 yang mengeksekusi salinan Amazon S3.

Untuk setiap perbaikan yang disarankan, Anda dapat memasukkan salah satu kontrol berikut:
+ Masuk `y` untuk menerima perbaikan yang disarankan.
+ Masukkan `n` untuk menolak perbaikan saat ini.
+ Masuk `a` untuk menerima semua perbaikan dengan jenis yang sama.
+ Masukkan `r` untuk menolak semua perbaikan dengan jenis yang sama.
+ Masuk `u` untuk menerima semua perbaikan yang tersisa.
+ Masuk `s` untuk menyimpan dan keluar.
+ Masuk `q` untuk berhenti tanpa menabung.

Beberapa temuan mungkin ditandai untuk tinjauan manual tanpa perbaikan yang disarankan. Anda harus meninjau temuan ini dan memverifikasi apakah Anda terpengaruh oleh perubahan melanggar yang direferensikan. Jika Anda terpengaruh oleh temuan ini, Anda harus mengikuti panduan yang ditentukan dalam deskripsi temuan untuk membuat perubahan yang diperlukan untuk menghindari atau mempersiapkan perubahan yang melanggar yang diperkenalkan dalam AWS CLI versi 2.

## Batasan
<a name="migration-tool-limitations"></a>

Alat Migrasi AWS CLI v1-ke-v2 saat ini tidak mendukung setiap perubahan yang melanggar yang diperkenalkan dengan AWS CLI versi 2, dan memiliki kasus positif palsu di mana ia mengeluarkan deteksi untuk perintah bahkan jika tidak ada perubahan yang melanggar yang benar-benar akan dihadapi.

Kami sangat menyarankan pelanggan memahami [Memecahkan perubahan antara AWS CLI versi 1 dan AWS CLI versi 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) dipublikasikan di[Fitur baru dan perubahan dalam AWS CLI versi 2](cliv2-migration-changes.md).

### Analisis Berbasis Teks
<a name="migration-tool-limitations-static-linter"></a>

Alat migrasi menganalisis skrip Anda tanpa menjalankannya. Ini membatasi cara mendeteksi perintah AWS CLI untuk melanggar perubahan. Alat migrasi hanya dapat memeriksa teks perintah AWS CLI. Itu tidak dapat mendeteksi masalah yang muncul saat runtime, seperti menyimpan parameter usang dalam variabel alih-alih meneruskannya langsung ke CLI. AWS 

### Deteksi Perubahan Breaking Tidak Didukung
<a name="migration-tool-limitations-unsupported-changes"></a>

Tingkat dukungan untuk melanggar perubahan dalam alat migrasi dirangkum dalam tabel berikut.


| Melanggar perubahan | Deteksi didukung | Perbaikan otomatis didukung | 
| --- | --- | --- | 
| [Variabel lingkungan ditambahkan untuk mengatur pengkodean file teks](cliv2-migration-changes.md#cliv2-migration-encodingenvvar) | Tidak | Tidak | 
| [Parameter biner dilewatkan sebagai string yang dikodekan base64 secara default](cliv2-migration-changes.md#cliv2-migration-binaryparam) | Ya | Ya | 
| [Peningkatan penanganan Amazon S3 dari properti file dan tag untuk salinan multipart](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata) | Ya | Ya | 
| [Tidak ada pengambilan otomatis `http://` atau `https://` URLs untuk parameter](cliv2-migration-changes.md#cliv2-migration-paramfile) | Tidak | Tidak | 
| [Pager digunakan untuk semua output secara default](cliv2-migration-changes.md#cliv2-migration-output-pager) | Ya | Ya | 
| [Nilai keluaran stempel waktu distandarisasi ke format ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) | Tidak | Tidak | 
| [Peningkatan penanganan CloudFormation penerapan yang tidak menghasilkan perubahan](cliv2-migration-changes.md#cliv2-migration-cfn) | Ya | Ya | 
| [Mengubah perilaku default untuk titik akhir Amazon S3 Regional untuk Wilayah `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint) | Tidak | Tidak | 
| [Mengubah perilaku default untuk titik AWS STS akhir Regional](cliv2-migration-changes.md#cliv2-migration-sts-regional-endpoint) | Tidak | Tidak | 
| [`ecr get-login`dihapus dan diganti dengan `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) | Ya | Tidak | 
| [AWS CLI dukungan versi 2 untuk plugin berubah](cliv2-migration-changes.md#cliv2-migration-profile-plugins) | Tidak | Tidak | 
| [Dukungan alias tersembunyi dihapus](cliv2-migration-changes.md#cliv2-migration-aliases) | Ya | Ya | 
| [Pengaturan file `api_versions` konfigurasi tidak didukung](cliv2-migration-changes.md#cliv2-migration-api-versions) | Tidak | Tidak | 
| [AWS CLI versi 2 hanya menggunakan Signature v4 untuk mengautentikasi permintaan Amazon S3](cliv2-migration-changes.md#cliv2-migration-sigv4) | Tidak | Tidak | 
| [AWS CLI versi 2 lebih konsisten dengan parameter paging](cliv2-migration-changes.md#cliv2-migration-skeleton-paging) | Ya | Tidak | 
| [AWS CLI versi 2 menyediakan kode pengembalian yang lebih konsisten di semua perintah](cliv2-migration-changes.md#cliv2-migration-return-codes) | Tidak | Tidak | 