

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

# AWS SAMCLIpemecahan masalah
<a name="sam-cli-troubleshooting"></a>

Bagian ini memberikan rincian tentang cara memecahkan masalah pesan kesalahan saat menggunakan, menginstal, dan mengelola Antarmuka Baris AWS Serverless Application Model Perintah ()AWS SAMCLI.

**Topics**
+ [

## Pemecahan masalah
](#install-sam-cli-troubleshooting)
+ [

## Pesan kesalahan
](#sam-cli-troubleshoot-messages)
+ [

## Pesan peringatan
](#sam-cli-troubleshoot-warning)

## Pemecahan masalah
<a name="install-sam-cli-troubleshooting"></a>

Untuk panduan pemecahan masalah yang terkait dengan AWS SAMCLI, lihat. [Memecahkan masalah kesalahan instalasi](install-sam-cli.md#sam-cli-troubleshoot-install)

## Pesan kesalahan
<a name="sam-cli-troubleshoot-messages"></a>

### Kesalahan curl: "curl: (6) Tidak dapat menyelesaikan: ..."
<a name="sam-cli-troubleshoot-messages-curl"></a>

Ketika mencoba untuk memanggil titik akhir API Gateway, Anda akan melihat kesalahan berikut ini:

```
curl: (6) Could not resolve: endpointdomain (Domain name not found)
```

Ini berarti Anda telah mencoba mengirim permintaan ke domain yang tidak valid. Hal ini dapat terjadi jika aplikasi nirserver Anda gagal untuk men-deploy, atau jika Anda memiliki kesalahan ketik dalam perintah **curl** Anda. Verifikasi bahwa aplikasi berhasil digunakan dengan menggunakan CloudFormation konsol atau AWS CLI, dan verifikasi bahwa **curl** perintah Anda benar.

### Kesalahan: Tidak dapat menemukan informasi sumber daya yang tepat dengan nama tumpukan yang diberikan
<a name="sam-cli-troubleshoot-messages-exact-resource"></a>

Saat menjalankan `sam remote invoke` perintah pada aplikasi yang berisi sumber daya fungsi Lambda tunggal, Anda melihat kesalahan berikut:

```
Error: Can't find exact resource information with given <stack-name>. Please provide full resource ARN or --stack-name to resolve the ambiguity.
```

**Kemungkinan penyebabnya: Anda tidak memberikan `--stack-name` opsi.**  
Jika fungsi ARN tidak disediakan sebagai argumen, `sam remote invoke` perintah mengharuskan `--stack-name` opsi disediakan.

**Solusi: Berikan `--stack-name` opsi.**  
Berikut ini adalah contohnya:  

```
$ sam remote invoke --stack-name sam-app

Invoking Lambda Function HelloWorldFunction                                                                                                                                                                                                                     
START RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Version: $LATEST
END RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82
REPORT RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82  Duration: 11.31 ms      Billed Duration: 12 ms  Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 171.71 ms
{"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
```

### Kesalahan: Tidak dapat menemukan informasi sumber daya dari nama tumpukan
<a name="sam-cli-troubleshoot-messages-stack-name"></a>

Saat menjalankan `sam remote invoke` perintah dan meneruskan ARN fungsi Lambda sebagai argumen, Anda melihat kesalahan berikut:

```
Error: Can't find resource information from stack name (<stack-name>) and resource id (<function-id>)
```

**Kemungkinan penyebabnya: Anda memiliki nilai nama tumpukan yang ditentukan dalam `samconfig.toml` file Anda.**  
Yang AWS SAMCLI pertama memeriksa `samconfig.toml` file Anda untuk nama tumpukan. Jika ditentukan, argumen dilewatkan sebagai nilai ID logis.

**Solusi: Lulus ID logis fungsi sebagai gantinya.**  
Anda dapat meneruskan ID logis fungsi sebagai argumen, bukan ARN fungsi.

**Solusi: Hapus nilai nama tumpukan dari file konfigurasi Anda.**  
Anda dapat menghapus nilai nama tumpukan dari file konfigurasi Anda. Ini AWS SAMCLI mencegah agar tidak meneruskan ARN fungsi Anda sebagai nilai ID logis.  
Jalankan `sam build` setelah memodifikasi file konfigurasi Anda.

### Kesalahan: Gagal membuat sumber daya terkelola: Tidak dapat menemukan kredensil
<a name="sam-cli-troubleshoot-messages-credentials"></a>

Saat menjalankan **sam deploy** perintah, Anda melihat kesalahan berikut:

```
Error: Failed to create managed resources: Unable to locate credentials
```

Ini berarti bahwa Anda belum mengatur AWS kredensional untuk mengaktifkan AWS SAMCLI untuk melakukan panggilan AWS layanan. Untuk memperbaikinya, Anda harus mengatur AWS kredensil. Untuk informasi selengkapnya, lihat [Menyiapkan AWS kredensial](serverless-getting-started-set-up-credentials.md).

### Kesalahan: FileNotFoundError di Windows
<a name="sam-cli-troubleshoot-messages-filenotfound-win"></a>

Saat menjalankan perintah AWS SAMCLI di Windows, Anda mungkin melihat kesalahan berikut:

```
Error: FileNotFoundError
```

Kemungkinan penyebabnya: AWS SAMCLI Mungkin berinteraksi dengan jalur file yang melebihi batasan jalur maks Windows.

Solusi: Untuk mengatasi masalah ini, perilaku jalur panjang yang baru harus diaktifkan. Untuk melakukannya, lihat [Aktifkan Jalur Panjang di Windows 10, Versi 1607, dan Nanti](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell#enable-long-paths-in-windows-10-version-1607-and-later) di *Dokumentasi Pengembangan Aplikasi Microsoft Windows*.

### Kesalahan: penyelesai ketergantungan pip...
<a name="sam-cli-troubleshoot-messages-pip"></a>

*Contoh teks kesalahan*:

```
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
```

**Kemungkinan penyebabnya: Jika Anda menggunakan pip untuk menginstal paket, dependensi antar paket mungkin bertentangan.**  
Setiap versi `aws-sam-cli` paket tergantung pada versi `aws-sam-translator` paket. Misalnya, `aws-sam-cli` v1.58.0 mungkin bergantung pada v1.51.0. `aws-sam-translator`  
Jika Anda menginstal AWS SAMCLI usingpip, kemudian menginstal paket lain yang tergantung pada versi yang lebih baru dari`aws-sam-translator`, berikut ini akan terjadi:  
+ Versi yang lebih baru `aws-sam-translator` akan diinstal.
+ Versi saat ini `aws-sam-cli` dan versi yang lebih baru `aws-sam-translator` mungkin tidak kompatibel.
+ Saat Anda menggunakan AWS SAMCLI, kesalahan penyelesai ketergantungan akan terjadi.

**Solusi:**

1. Gunakan penginstal paket AWS SAMCLI asli.

   1. Copot pemasangan AWS SAMCLI menggunakan pip. Untuk petunjuk, lihat [Menghapus instalasi AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall).

   1. Instal AWS SAMCLI menggunakan installer paket asli. Untuk petunjuk, lihat [Instal AWS SAMCLI](install-sam-cli.md).

   1. Bila perlu, tingkatkan AWS SAMCLI menggunakan penginstal paket asli. Untuk petunjuk, lihat [Upgrade AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

1. Jika Anda harus menggunakanpip, kami sarankan Anda menginstal AWS SAM CLI ke lingkungan virtual. Ini memastikan lingkungan instalasi yang bersih dan lingkungan yang terisolasi jika terjadi kesalahan. Untuk petunjuk, lihat [Memasang AWS SAMCLI ke dalam lingkungan virtual menggunakan pip](manage-sam-cli-versions.md#manage-sam-cli-versions-install-virtual).

### Kesalahan: Tidak ada perintah 'remote' seperti itu
<a name="sam-cli-troubleshoot-messages-command-remote"></a>

Saat menjalankan `sam remote invoke` perintah, Anda melihat kesalahan berikut:

```
$ sam remote invoke ...
2023-06-20 08:15:07 Command remote not available
Usage: sam [OPTIONS] COMMAND [ARGS]...
Try 'sam -h' for help.

Error: No such command 'remote'.
```

**Kemungkinan penyebabnya: Versi Anda AWS SAMCLI sudah ketinggalan zaman.**  
 AWS SAMCLI`sam remote invoke`Perintah ini dirilis dengan AWS SAMCLI versi 1.88.0. Anda dapat memeriksa versi Anda dengan menjalankan `sam --version` perintah.

**Solusi: Tingkatkan versi Anda AWS SAMCLI ke versi terbaru.**  
Untuk petunjuk, lihat [Upgrade AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

### Kesalahan: Menjalankan proyek AWS SAM secara lokal membutuhkanDocker. Sudahkah Anda menginstalnya?
<a name="sam-cli-troubleshoot-messages-docker"></a>

Saat menjalankan **sam local start-api** perintah, Anda melihat kesalahan berikut:

```
Error: Running AWS SAM projects locally requires Docker. Have you got it installed?
```

Ini berarti Anda belum menginstal Docker dengan benar. Dockerdiperlukan untuk menguji aplikasi Anda secara lokal. Untuk memperbaiki masalah ini, ikuti petunjuk untuk menginstal Docker untuk host pengembangan Anda. Untuk informasi selengkapnya, lihat [Menginstal Docker](install-docker.md).

### Kesalahan: Kendala Keamanan Tidak Puas
<a name="sam-cli-troubleshoot-messages-security-constraints"></a>

Saat menjalankan **sam deploy --guided**, Anda akan di-prompt dengan pertanyaan `Function may not have authorization defined, Is this okay? [y/N]`. Jika Anda menanggapi prompt ini dengan **N** (respons default), Anda akan melihat kesalahan berikut:

```
Error: Security Constraints Not Satisfied
```

Prompt ini memberi tahu Anda bahwa aplikasi yang akan Anda terapkan mungkin memiliki API Amazon API Gateway API yang dapat diakses publik yang dikonfigurasi tanpa otorisasi. Dengan memberikan tanggapan **N** untuk prompt ini, Anda memberitahu bahwa kesalahan mungkin terjadi.

Untuk memperbaikinya, Anda mempunyai opsi berikut:
+ Konfigurasikan aplikasi Anda dengan otorisasi. Untuk informasi tentang mengonfigurasi otorisasi, lihat [Kontrol akses API dengan AWS SAM template Anda](serverless-controlling-access-to-apis.md).
+ Jika niat Anda adalah memiliki titik akhir API yang dapat diakses publik tanpa otorisasi, mulai ulang penerapan Anda dan tanggapi pertanyaan ini **Y** untuk menunjukkan bahwa Anda setuju dengan penerapan.

### pesan: Token Otentikasi Hilang
<a name="sam-cli-troubleshoot-messages-auth-token"></a>

Ketika mencoba untuk memanggil titik akhir API Gateway, Anda akan melihat kesalahan berikut ini:

```
{"message":"Missing Authentication Token"}
```

Ini berarti Anda telah mencoba mengirim permintaan ke domain yang benar, namun URI tidak dapat dikenali. Untuk memperbaikinya, verifikasi URL lengkap, dan perbarui perintah **curl** dengan URL yang benar.

## Pesan peringatan
<a name="sam-cli-troubleshoot-warning"></a>

### Peringatan:... AWS tidak akan lagi mempertahankan Homebrew installer untuk AWS SAM ...
<a name="sam-cli-troubleshoot-warning-homebrew"></a>

Saat menginstal AWS SAMCLI usingHomebrew, Anda melihat pesan peringatan berikut:

```
Warning: ... AWS will no longer maintain the Homebrew installer for AWS SAM (aws/tap/aws-sam-cli). 
				For AWS supported installations, use the first party installers ...
```

**Penyebab potensial: AWS tidak lagi mempertahankan Homebrew dukungan.**  
Mulai September 2023, tidak AWS akan lagi mempertahankan Homebrew installer untuk. AWS SAMCLI  

**Solusi: Gunakan metode instalasi yang AWS didukung.**
+ Anda dapat menemukan metode instalasi yang AWS didukung di[Instal AWS SAMCLI](install-sam-cli.md).

**Solusi: Untuk terus menggunakanHomebrew, gunakan penginstal yang dikelola komunitas.**
+ Anda dapat menggunakan Homebrew penginstal yang dikelola komunitas sesuai kebijaksanaan Anda. Untuk petunjuk, lihat [Mengelola AWS SAMCLI dengan Homebrew](manage-sam-cli-versions.md#manage-sam-cli-versions-homebrew).