Membuat dan Menerapkan menggunakan AWS CLI
AWS CLIadalah alat baris perintah yang membantu bekerja dengan layanan AWS. Kita dapat menggunakannya untuk membuat, memperbarui, menghapus, menjalankan fungsi lambda aws. Di bab ini, Anda akan membahas tentang penginstalan dan penggunaan AWS CLI secara detail.
Pemasangan AWS CLI
Bagian ini akan memandu Anda melalui penginstalan AWS CLI di berbagai sistem operasi. Ikuti langkah-langkah yang diberikan dan amati tangkapan layar yang sesuai di mana pun terlampir.
Untuk Windows
Periksa konfigurasi Windows Anda dan pilih salah satu tautan berikut untuk menginstal MSI AWS CLI -
Untuk Windows 64 bit - AWS CLI MSI install untuk Windows (64bit)
Untuk Windows 32 bit - Penginstalan MSI AWS CLI untuk Windows (32)
Setelah Anda memilih tautan yang sesuai dan mengekliknya, Anda dapat menemukan Jendela seperti yang ditunjukkan di sini -
Selanjutnya, setel Environment path in windows seperti yang ditunjukkan pada tangkapan layar di bawah -
Setelah selesai, Anda dapat menggunakan perintah berikut pada prompt perintah, untuk melihat apakah aws cli dipasang -
aws --version
Ini menampilkan detail versi aws-cli seperti yang ditunjukkan pada tangkapan layar berikut -
Untuk Linux / Mac
Untuk menginstal di Linux dan Mac, Anda membutuhkan Python 2.6.3 atau versi yang lebih tinggi. Kemudian, gunakan perintah berikut untuk proses instalasi lebih lanjut -
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Sekarang, kita perlu mengonfigurasi pengaturan AWS. Anda dapat menggunakan perintah berikut untuk tujuan ini -
aws configure
Untuk tujuan ini, diperlukan detail seperti -
- ID Kunci Akses AWS
- Kunci Akses Rahasia AWS
- Nama wilayah default
- Output default dari format
Anda dapat memperoleh detail ini dari konsol aws Anda. Pergi ke Anda Nama akun di pojok kanan atas seperti yang ditunjukkan -
Sekarang, klik My Security Credentialsdan pilih pengguna dari sisi kiri. Tambahkan pengguna dengan detail seperti yang diminta.
Tambahkan pengguna dan untuk mendapatkan kunci akses dan kunci rahasia. Untuk melihat kunci akses baru, pilihShow. Kredensial Anda akan terlihat seperti yang ditunjukkan di bawah ini -
Access key ID − AOSAIOSFOCDD7Example
Secret access key − aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY
Perintah Referensi untuk AWS CLIS
Tabel berikut akan memberikan referensi perintah yang tersedia untuk dikerjakan aws cli.
Nama perintah aws cli | Referensi perintah |
---|---|
create-function | create-function --function-name <value> --runtime <value> --role <value> --handler <value> [--code <value>] [--description <value>] [--timeout < value>] [--memory-size <value>] [--environment <value>] [--kms-key-arn <value>] [--tags <value>] [--zip-file <value> ] [--cli-input-json <value>] |
list-functions | list-functions [--master-region <value>] [--function-version <value>] [--max-items <value>] [--cli-input-json <value>] [--starting- token <value>] [--page-size <value>] [--generate-cli-skeleton <value>] |
get-function | get-function --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>] |
get-function-configuration | get-function-configuration --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>] |
get-account-settings | get-account-settings [--cli-input-json <value>] [--generate-cli-skeleton <value>] |
update-function-configuration | update-function-configuration --function-name <value> [--role <value>] [--handler <value>] [--description <value>] [--timeout <value>] [--memory- size <value>] [--vpc-config <value>] [--environment <value>] [--runtime <value>] [--dead-letter-config <value>] [--kms-key- arn <value>] [--tracing-config <value>] [--revision-id <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>] |
update-function-code | update-function-code --function-name <value> [--zip-file <value>] [--s3-bucket <value>] [--s3-key <value>] [--s3-object- versi <value>] [--publish | --no-publish] [--dry-run | --no-dry-run] [--revision-id <value>] [- cli-input-json <value>] [- generate-cli-skeleton <value>] |
delete-function | delete-function --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>] |
Sekarang, mari kita bahas perintah ini satu per satu secara detail.
buat-fungsi
Api ini akan membuat fungsi lambda baru. Kode harus diberikan dalam format zip. Jika fungsi yang akan dibuat sudah ada, api akan gagal. Perhatikan bahwa nama fungsi peka huruf besar / kecil.
Perintah Termasuk
Daftar perintah yang dapat Anda gunakan dengan fungsi buat diberikan di sini -
create-function
--function-name <value>
--runtime <value>
--role <value>
--handler <value>
[--code <value>]
[--description <value>]
[--timeout <value>]
[--memory-size <value>]
[--environment <value>]
[--kms-key-arn <value>]
[--tags <value>]
[--zip-file <value>]
[--cli-input-json <value>]
Opsi Termasuk
Berbagai opsi yang dapat Anda gunakan dengan fungsi di atas adalah sebagai berikut -
--function-name (string)- Ini mengambil nama fungsinya. Namanya dapat berupa karakter 64-bit.
--runtime(string)- Di sini Anda perlu menentukan lingkungan runtime, yaitu pemilihan bahasa. Detail runtime seperti yang diberikan di bawah ini -
Pilihan tersedia | runtime |
---|---|
Python v3.6 | python3.6 |
Python v2.7 | python2.7 |
NodeJS v6.10 | nodejs6.10 |
NodeJS v8.10 | nodejs8.10 |
Jawa | java8 |
C # 1 | dotnetcore1.0 |
C # 2 | dotnetcore2.0 |
Pergilah | go1.x |
--role(string)- Ini akan menjadi nama kebijakan lambda, yaitu peran yang akan diberikan ke fungsi lambda untuk mengakses layanan lain. Ini akan memiliki izin sesuai peran yang ditentukan.
--handler (string) - Ini adalah nama penangan tempat eksekusi kode lambda akan dimulai.
- Untuk nodejs, nama penangan adalah nama modul yang kita ekspor.
- Untuk java, ini adalah package.classname :: handler atau package.classname
- Untuk python, handler adalah nameofthefile.
--code (structure) −AWS kode Lambda
--description (string) - deskripsi untuk fungsi AWS Lambda
--timeout (integer)- timeout akan memiliki waktu di mana fungsi lambda harus menghentikan eksekusi. Standarnya adalah 3s.
--memory-size (integer)- Ini adalah memori yang diberikan ke fungsi aws lambda. AWS akan mengalokasikan jumlah CPU dan alokasi memori berdasarkan memori yang diberikan.
--environment (structure) - itu adalah objek dengan detail lingkungan yang diperlukan dalam fungsi lambda aws.
e.g : Variables = {Name1 = string, Name2 = string}
--kms-key-arn (string)- ini adalah amazon resource name (ARN) yang digunakan untuk mengenkripsi variabel lingkungan. Jika tidak disediakan maka akan mengambil pengaturan default untuk mengenkripsi.
--zip-file (blob) - jalur file zip yang memiliki detail kode.
--cli-input-json (string): Melakukan operasi layanan berdasarkan string JSON yang disediakan. String JSON mengikuti format yang disediakan oleh --generate-cli-skeleton. Jika argumen lain diberikan pada baris perintah, nilai CLI akan menggantikan nilai yang diberikan JSON.
Sekarang, mari kita buat fungsi AWS Lambda sederhana menggunakan runtime sebagai nodejs dan menambahkan beberapa console.logs untuk dicetak.
Pertimbangkan kode contoh untuk memahami hal yang sama -
exports.handler = async (event) => {
console.log("Using aws cli");
return 'Hello from Lambda from aws cli!'
};
Sekarang, zip file tersebut dan simpan sebagai awscli.zip.
Mendapatkan ARN
Untuk peran tersebut, mari kita gunakan arndari peran yang sudah kami buat. Untuk mendapatkan ARN, Anda harus mengikuti langkah-langkah seperti yang ditunjukkan di sini. Amati tangkapan layar masing-masing di mana pun terlampir -
Langkah 1
Buka IAM dan pilih peran yang Anda inginkan Roles. Detail ARN untuk peran tersebut ditampilkan seperti yang ditunjukkan di bawah ini. MenggunakanRole ARN dengan create-function di aws cli.
Perhatikan disini bahwa role arn adalah: arn: aws: iam :: 625297745038: role / lambdaapipolicy
Perintah dengan nilai untuk create-function adalah sebagai berikut -
aws lambda create-function
--function-name "awslambdausingcli"
--runtime "nodejs8.10"
--role "arn:aws:iam::625297745038:role/lambdaapipolicy"
--handler "awscli.handler"
--timeout 5
--memory-size 256
--zip-file "fileb://awscli.zip"
Sekarang, jika Anda menjalankan perintah di aws cli, Anda dapat menemukan output seperti yang ditunjukkan di bawah ini -
Di konsol AWS, fungsi Lambda ditampilkan seperti yang ditunjukkan di bawah ini -
Detail fungsinya seperti yang ditunjukkan di sini -
Rincian konfigurasi seperti yang diberikan di bawah ini -
Anda dapat menguji fungsi dan memeriksa output seperti yang ditunjukkan -
Output Log terkait ditampilkan di sini -
fungsi daftar
Api ini memberikan daftar fungsi yang dibuat sejauh ini di AWS Lambda.
Perintah Termasuk
Berikut adalah perintah yang terkait dengan API ini -
list-functions
[--master-region <value>]
[--function-version <value>]
[--max-items <value>]
[--cli-input-json <value>]
Pilihan di bawah fungsi daftar
Berikut ini adalah berbagai opsi yang dapat Anda gunakan di bawah api daftar-fungsi ini -
--master-region(string)- opsional. Wilayah tempat fungsi perlu ditampilkan.
--function-version(string)- opsional. Ini akan memberikan versi fungsi.
--max-items(integer)- opsional. Ini akan memberikan item sesuai nilai yang ditentukan.
--cli-input-json(string)- opsional. Akan melakukan operasi berdasarkan file json yang disediakan.
Perintah dengan nilai list-functions adalah sebagai berikut -
aws lambda list-functions --max-items 3
Perintah tersebut menampilkan detail sebagai berikut -
get-function
Api ini akan memberikan detail fungsi dan juga link url yang telah diupload file zipnya menggunakan fungsi create. Url dengan detail zip hanya akan valid selama 10 menit.
Perintah Termasuk
Berikut ini adalah perintah yang terkait dengan api ini -
get-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
Opsi Termasuk
--function-name- Nama fungsi AWS Lambda. Anda juga dapat menentukan Nama Sumber Daya Amazon untuk fungsi tersebut.
--qualifier(string)- Opsional. Versi fungsi dapat digunakan untuk mendapatkan detail fungsi.
Perintah dengan nilai untuk fungsi get adalah -
aws lambda get-function --function-name awslambdausingcli
Detail tampilan perintah adalah sebagai berikut -
Ini memberikan url yang diunggah kode pos. Dalam kasus di atas, url-nya adalah -
https://prod-04-2014-
tasks.s3.amazonaws.com/snapshots/625297745038/awslambdausingcli-97048f8d-4a08
-4ed9-99d9-acb00d2063d2?versionId=d04HKvPu9S2zz8pzjbW6Rmf5o5fxnc_r&X-Amz-Security
-Token=FQoDYXdzEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDCpTmGvtwKToPBiWcyK3A96UcJEnwvYDhMbbxu
%2Bg2gffK2ocfnlEeiCHak8QqqE1RFpbKrdks9NzxP9gNbagL4M9RValxJ1a9PUY%2FOdAekscRHOiX00MVAxUlI8
2pKryhdOwLJWSj0uRzqvOxCcBwJenHrSNPeG6lMa2ZDo0qZFEUDONSaTg4nuSnJK1f6t3pMAKu4vF9wPvf92G%2BU
60rUxwleggigISmD9l1IlZse3%2BVF1JlNuN%2F5d85v0y2Q%2F%2BO515CybcZpn91sHPYG8JMJ00LsrkQ2Ww4VU
9Zz5c5QYH4JYPj0CyEgSz9b%2FMceMPpOoPUAMjctb%2FEwQqcShZeqAr9%2Fcd2ZI%2BXl2%2Bs4ri0ucgPvQQvs
eGIIiZbX3GqdwR2jb1nylrAEIfiuFMoSWfcFYoYtuL0MZnjGR9jy2GNkp6MB%2BlHHr7%2BnuFRUzU26rgDYmdE1w
Rb3%2B21Jm49WGDa9opRLvUxFaux57Or70haib2FuKzN6Gf3Vzzk5KPdWsYUpaLyf%2B1ovEytOZhB1JEXuCs%2FG
IlOXS88yxT%2BpOKmyxweiezpGgI%2FAkSAQTbSRsYQKIOFyIJNHzplwrJKhy28vy60numIBIo9Zqq2AU%3D
&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20180527T112426Z&X-Amz-
SignedHeaders=host&X-Amz-Expires=600&X-Amz-
Credential=ASIAICSQHLSBWFP37U4Q%2F20180527%2Fus-
east-1%2Fs3%2Faws4_request&X-Amz-Signature=
8b97e7d6d7da13313068e027894d2c875be5e50a0c5a62550f55307985bdc1aa
get-function-configuration
Ini akan memberikan detail konfigurasi dari fungsi AWS Lambda.
Berikut ini adalah perintah yang digunakan bersama dengan api ini -
get-function-configuration
--function-name <value>
[--qualifier <value>]
The following are the options used with
--function-name (string) −nama dari fungsi lambda aws. Anda juga dapat menentukan Nama Sumber Daya Amazon untuk fungsi tersebut.
--qualifier(string) − Opsional Versi fungsi dapat digunakan untuk mendapatkan detail fungsi.
Perintah dengan nilai untuk fungsi get adalah -
aws lambda get-function-configuration --function-name awslambdausingcli
Perintah tersebut menampilkan detail sebagai berikut -
dapatkan-pengaturan-akun
Api ini memberikan pengaturan akun.
Perintah yang Terlibat
Perintah yang dapat Anda gunakan dengan api ini adalah -
get-account-settings
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
Opsi yang Terlibat
Anda dapat menggunakan opsi berikut dengan api ini -
--cli-input-json(string) − Melakukan layanan berdasarkan string json yang disediakan.
--generate-cli-skeleton(string) − Ini mencetak keluaran json tanpa mengirim permintaan API.
Anda dapat menggunakan perintah berikut untuk mendapatkan-pengaturan-akun -
aws lambda get-account-settings
Anda dapat melihat output berikut ketika Anda menjalankan perintah yang diberikan di atas -
perbarui-fungsi-konfigurasi
Api ini membantu memperbarui detail konfigurasi untuk fungsi AWS Lambda yang dibuat. Anda dapat mengubah memori, batas waktu, penangan, peran, waktu proses, deskripsi, dll.
Perintah yang Terlibat
Berikut ini adalah perintah yang terlibat dalam update-function-configuration api -
update-function-configuration
--function-name <value>
[--role <value>]
[--handler <value>]
[--description <value>]
[--timeout <value>]
[--memory-size <value>]
[--environment <value>]
[--runtime <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
Opsi yang Terlibat
Berikut ini adalah opsi yang terlibat dalam update-function-configuration api -
--function-name − nama dari fungsi lambda aws
--role (string) −pilihan. Peran ARN perlu diperbarui.
--handler (string) −pilihan. Detail penangan dari fungsi lambda aws.
--description(string) −pilihan. Deskripsi fungsi.
--timeout(integer) −pilihan. Waktu yang dibutuhkan agar fungsi lambda aws dapat dihentikan.
--memory-size(integer) −pilihan. Ini adalah memori yang diberikan ke fungsi lambda aws. AWS akan mengalokasikan jumlah CPU dan alokasi memori berdasarkan memori yang diberikan.
--environment (structure) −pilihan. Ini adalah objek dengan detail lingkungan yang diperlukan dalam fungsi lambda aws.
e.g: Variables = {Name1 = string, Name2 = string}
--runtime(string) − Di sini Anda perlu menentukan lingkungan runtime yaitu pemilihan bahasa.
Detail runtime ditunjukkan pada tabel yang diberikan di bawah ini -
Pilihan tersedia | runtime |
---|---|
Python v3.6 | python3.6 |
Python v2.7 | python2.7 |
NodeJS v6.10 | nodejs6.10 |
NodeJS v8.10 | nodejs8.10 |
Jawa | java8 |
C # 1 | dotnetcore1.0 |
C # 2 | dotnetcore2.0 |
Pergilah | go1.x |
--cli-input-json (string) −pilihan. Ini akan melakukan operasi pada api seperti yang ditentukan dalam string json yang disediakan.
--generate-cli-skeleton (string) −pilihan. Ini akan menampilkan kerangka JSON dari semua detail tanpa menjalankan api. Keluaran dapat digunakan sebagai masukan untuk--cli-input-json.
Sekarang, mari kita ubah memori dan waktu tunggu fungsi AWS Lambda yang telah kita buat sebelumnya. Ikuti Langkah-langkah yang diberikan di bawah ini dan amati tangkapan layar terkait yang dilampirkan untuk tujuan ini -
Langkah 1
Memori dan batas waktu sebelum perubahan terjadi adalah sebagai berikut -
Langkah 2
Sekarang dengan update-function-configuration, mari kita ubah memori dan timeout menjadi 320MB dan timeout menjadi 10s. Untuk tujuan ini, gunakan perintah berikut dengan nilai -
aws lambda update-function-configuration --function-name “awslambdusingcli”
--timeout 10 --memory-size 320
LANGKAH 3
Kemudian Anda dapat melihat output berikut sebagai tampilan -
LANGKAH 4
Tampilan di konsol AWS setelah menggunakan update-function-configuration adalah sebagai berikut -
Perbarui-fungsi-kode
Api ini akan memperbarui kode untuk fungsi AWS Lambda yang sudah ada.
Perintah yang Terlibat
update-function-code
--function-name <value>
[--zip-file <value>]
[--s3-bucket <value>]
[--s3-key <value>]
[--s3-object-version <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
Opsi yang Terlibat
Berikut ini adalah opsi yang terlibat dengan update-function-code api -
--function-name(string) − nama fungsi aws lambda
--zip-file (blob) −pilihan. Jalur file zip yang memiliki kode yang akan diperbarui.
--s3-bucket(string) −pilihan. Nama bucket S3 yang memiliki file zip dengan kode yang diunggah.
--s3-key(string) −pilihan. Nama kunci objek AWS s3 yang harus diunggah.
--s3-object-version (string) −pilihan. Versi objek AWS s3.
--cli-input-json (string) −pilihan. Ini akan melakukan operasi pada api seperti yang ditentukan dalam string json yang disediakan.
--generate-cli-skeleton (string) −pilihan. Ini akan menampilkan kerangka JSON dari semua detail tanpa menjalankan api. Outputnya bisa digunakan sebagai input ke --cli-input-json.
Kode yang diperbarui seperti yang ditunjukkan di bawah ini -
exports.handler = async (event, context) => {
console.log("Using aws cli");
console.log()
return 'Hello from Lambda from aws cli!'
};
Anda dapat menggunakan yang berikut ini command with values for this purpose -
aws lambda update-function-code --function-name "awslambdausingcli"
--zip-file "fileb://awscli.zip"
Output yang sesuai seperti yang ditunjukkan di sini -
Tampilan dari konsol AWS seperti yang ditunjukkan di sini -
Output log yang sesuai seperti yang ditunjukkan di bawah ini -
hapus-fungsi
Itu delete aws cli api akan menghapus fungsi yang diberikan.
Perintah Termasuk
Detail perintah untuk hal yang sama diberikan di sini -
delete-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
Opsi Termasuk
Opsi yang termasuk dalam api ini seperti yang diberikan di bawah ini -
--function-name(string) − ini akan mengambil nama fungsi lambda atau arn dari fungsi aws lambda.
--qualifier (string) −Ini opsional. Di sini Anda dapat menentukan versi aws lambda yang perlu dihapus.
-- cli-input-json(string) −Melakukan operasi layanan berdasarkan string JSON yang disediakan. String JSON mengikuti format yang disediakan oleh --generate-cli-skeleton. Jika argumen lain diberikan pada baris perintah, nilai CLI akan menggantikan nilai yang diberikan JSON.
--generate-cli-skeleton(string) − itu mencetak kerangka json ke keluaran standar tanpa mengirim permintaan API.
Anda dapat menggunakan perintah berikut dengan nilai untuk tujuan ini -aws lambda delete-function --function-name "lambdatestcli"
Sekarang, perhatikan bahwa fungsi tersebut tidak akan terlihat di daftar fungsi AWS Lambda -