Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memberi fungsi Lambda Layanan AWS
Saat Anda menggunakan AWS layanan untuk memicu fungsi, Anda memberikan izin dalam pernyataan tentang kebijakan berbasis sumber daya. Anda dapat menerapkan pernyataan ke seluruh fungsi, atau membatasi pernyataan ke satu versi atau alias.
catatan
Saat Anda menambahkan pemicu ke fungsi Anda dengan konsol Lambda, konsol memperbarui kebijakan berbasis sumber daya fungsi untuk memungkinkan layanan memicunya. Untuk memberikan izin ke akun atau layanan lain yang tidak tersedia di konsol Lambda, Anda dapat menggunakan AWS CLI.
Tambahkan pernyataan dengan perintah add-permissionmy-function
aws lambda add-permission \ --function-name my-function \ --action lambda:InvokeFunction \ --statement-id sns \ --principal sns.amazonaws.com \ --output text
Anda akan melihat output berikut:
{"Sid":"sns","Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function"}
Ini memungkinkan Amazon SNS memanggil API tindakan Invoke pada fungsi tersebut, tetapi tidak membatasi SNS topik Amazon yang memicu invokasi tersebut. Untuk memastikan fungsi Anda hanya di-invokasi oleh sumber daya tertentu, tentukan Amazon Resource Name (ARN) sumber daya dengan source-arn
opsi tersebut. Perintah berikut ini hanya memungkinkan Amazon SNS untuk memicu fungsi untuk berlangganan ke topik bernama. my-topic
aws lambda add-permission \ --function-name my-function \ --action lambda:InvokeFunction \ --statement-id sns-my-topic \ --principal sns.amazonaws.com \ --source-arn arn:aws:sns:
us-east-2:123456789012:my-topic
Beberapa layanan dapat melakukan invokasi fungsi di akun lain. Jika Anda menentukan sumber ARN yang berisi ID akun di dalamnya, hal tersebut bukanlah masalah. Namun, untuk Amazon S3, sumbernya adalah bucket yang ARN tidak memiliki ID akun di dalamnya. Anda mungkin bisa menghapus bucket, dan akun lain dapat membuat bucket dengan nama yang sama. Gunakan opsi source-account
dengan ID akun Anda untuk memastikan hanya sumber daya di akun Anda yang dapat melakukan invokasi fungsi.
aws lambda add-permission \ --function-name my-function \ --action lambda:InvokeFunction \ --statement-id s3-account \ --principal s3.amazonaws.com \ --source-arn arn:aws:s3:::
amzn-s3-demo-bucket
\ --source-account123456789012