AWS SAMCLIpemecahan masalah - AWS Serverless Application Model

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

AWS SAMCLIpemecahan masalah

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

Pemecahan Masalah

Untuk panduan pemecahan masalah yang terkait dengan AWS SAMCLI, lihat. Memecahkan masalah kesalahan instalasi

Pesan kesalahan

Kesalahan curl: "curl: (6) Tidak dapat menyelesaikan: ..."

Saat mencoba memanggil titik akhir API Gateway, Anda melihat kesalahan berikut:

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 AWS 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

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 tidak ARN disediakan sebagai argumen, sam remote invoke perintah mengharuskan --stack-name opsi disediakan.

Solusi: Berikan --stack-name opsi.

Berikut 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

Saat menjalankan sam remote invoke perintah dan meneruskan fungsi Lambda ARN 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 fungsiARN.

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 fungsi Anda ARN sebagai nilai ID logis.

Jalankan sam build setelah memodifikasi file konfigurasi Anda.

Kesalahan: Gagal membuat sumber daya terkelola: Tidak dapat menemukan kredensil

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 kredensial AWS.

Kesalahan: FileNotFoundError di Windows

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 di Dokumentasi Pengembangan Aplikasi Microsoft Windows.

Kesalahan: penyelesai ketergantungan pip...

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 dariaws-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.

    2. Instal AWS SAMCLI menggunakan installer paket asli. Untuk petunjuk, lihat Instal AWS SAM CLI.

    3. Bila perlu, tingkatkan AWS SAMCLI menggunakan penginstal paket asli. Untuk petunjuk, lihat Upgrade AWS SAMCLI.

  2. Jika Anda harus menggunakanpip, kami sarankan Anda menginstal AWS SAM CLI ke dalam 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.

Kesalahan: Tidak ada perintah 'remote' seperti itu

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 SAMCLIsam remote invokePerintah 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.

Kesalahan: Menjalankan AWS SAM proyek secara lokal membutuhkanDocker. Sudahkah Anda menginstalnya?

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.

Kesalahan: Kendala Keamanan Tidak Puas

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 Amazon API Gateway yang dapat diakses publik yang API 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 API akses dengan AWS SAM template Anda.

  • Jika niat Anda adalah memiliki API titik akhir yang dapat diakses publik tanpa otorisasi, mulai ulang penerapan Anda dan tanggapi pertanyaan ini dengan Y menunjukkan bahwa Anda setuju dengan penerapan.

pesan: Token Otentikasi Hilang

Saat mencoba memanggil titik akhir API Gateway, Anda melihat kesalahan berikut:

{"message":"Missing Authentication Token"}

Ini berarti Anda telah mencoba mengirim permintaan ke domain yang benar, tetapi URI tidak dapat dikenali. Untuk memperbaikinya, verifikasi lengkapURL, dan perbarui curl perintah dengan yang benarURL.

Pesan peringatan

Peringatan:... AWS tidak akan lagi mempertahankan Homebrew installer untuk AWS SAM ...

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.
Solusi: Untuk terus menggunakanHomebrew, gunakan penginstal yang dikelola komunitas.