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
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\"}"}%sam-app
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
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 versiaws-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 baruaws-sam-translator
mungkin tidak kompatibel. -
Saat Anda menggunakan AWS SAMCLI, kesalahan penyelesai ketergantungan akan terjadi.
Solusi:
-
Gunakan penginstal paket AWS SAMCLI asli.
-
Copot pemasangan AWS SAMCLI menggunakan pip. Untuk petunjuk, lihat Menghapus instalasi AWS SAMCLI.
-
Instal AWS SAMCLI menggunakan installer paket asli. Untuk petunjuk, lihat Instal AWS SAM CLI.
-
Bila perlu, tingkatkan AWS SAMCLI menggunakan penginstal paket asli. Untuk petunjuk, lihat Upgrade AWS SAMCLI.
-
-
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 SAMCLI
sam remote invoke
Perintah ini dirilis dengan AWS SAMCLI versi 1.88.0. Anda dapat memeriksa versi Anda dengan menjalankansam --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
. Jika Anda menanggapi prompt ini dengan Function
may not have authorization defined, Is this
okay? [y/N]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.
-
Anda dapat menemukan metode instalasi yang AWS didukung diInstal AWS SAM CLI.
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.
-