Tạo và triển khai bằng AWS CLI

AWS CLIlà một công cụ dòng lệnh giúp làm việc với các dịch vụ AWS. Chúng ta có thể sử dụng nó để tạo, cập nhật, xóa, gọi hàm aws lambda. Trong chương này, bạn sẽ thảo luận chi tiết về cài đặt và sử dụng AWS CLI.

Cài đặt AWS CLI

Phần này sẽ hướng dẫn bạn cài đặt AWS CLI trên các hệ điều hành khác nhau. Làm theo các bước được đưa ra và quan sát ảnh chụp màn hình tương ứng ở bất kỳ nơi nào được đính kèm.

Cho cửa sổ

Kiểm tra cấu hình Windows của bạn và chọn một trong các liên kết sau để cài đặt AWS CLI MSI -

  • Đối với Windows 64 bit - AWS CLI MSI cài đặt cho Windows (64 bit)

  • Đối với Windows 32 bit - AWS CLI MSI cài đặt cho Windows (32)

Khi bạn chọn liên kết tương ứng và nhấp vào liên kết đó, bạn có thể tìm thấy một Cửa sổ như được hiển thị ở đây -

Tiếp theo, đặt Environment path in windows như thể hiện trong ảnh chụp màn hình bên dưới -

Sau khi hoàn tất, bạn có thể sử dụng lệnh sau trên dấu nhắc lệnh, để xem liệu aws cli được cài đặt -

aws --version

Nó hiển thị các chi tiết của phiên bản aws-cli như được hiển thị trong ảnh chụp màn hình sau:

Đối với Linux / Mac

Để cài đặt trên Linux và Mac, bạn cần có Python 2.6.3 hoặc cao hơn. Sau đó, sử dụng các lệnh sau cho các quá trình cài đặt tiếp theo:

$ 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

Bây giờ, chúng ta cần định cấu hình cài đặt AWS. Bạn có thể sử dụng lệnh sau cho mục đích này:

aws configure

Đối với mục đích này, nó yêu cầu các chi tiết như -

  • ID khóa truy cập AWS
  • Khóa truy cập bí mật AWS
  • Tên vùng mặc định
  • Đầu ra mặc định từ định dạng

Bạn có thể lấy những thông tin chi tiết này từ bảng điều khiển aws của mình. Chuyển đến bạn Tên tài khoản ở góc trên bên phải như hình -

Bây giờ, hãy nhấp vào My Security Credentialsvà chọn người dùng từ phía bên trái. Thêm người dùng với các chi tiết như được yêu cầu.

Thêm người dùng và nhận khóa truy cập và khóa bí mật. Để xem khóa truy cập mới, hãy chọnShow. Thông tin đăng nhập của bạn sẽ giống như hình dưới đây -

Access key ID − AOSAIOSFOCDD7Example

Secret access key − aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY

Các lệnh tham chiếu cho AWS CLIS

Bảng sau sẽ cung cấp các tham chiếu lệnh có sẵn để làm việc với aws cli.

Tên của lệnh cli aws Tham chiếu lệnh
create-function create-function - function-name <value> --runtime <value> --role <value> --handler <value> [--code <value>] [--description <value>] [--timeout < value>] [--memory-size <value>] [--enosystem <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- mã thông báo <giá trị>] [--page-size <giá trị>] [--generate-cli-khung xương <giá trị>]
get-function get-function - function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-khung xương <value>]
get-function-configuration get-function-configuration - functions-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-khung xương <value>]
get-account-settings get-account-settings [--cli-input-json <value>] [--generate-cli-khung xương <value>]
update-function-configuration update-function-configuration - functions-name <value> [--role <value>] [--handler <value>] [--description <value>] [--timeout <value>] [--memory- kích thước <giá trị>] [--vpc-config <giá trị>] [--en môi trường <giá trị>] [- thời gian <giá trị>] [--dead-letter-config <giá trị>] [--kms-key- arn <value>] [--tracing-config <value>] [--revision-id <value>] [--cli-input-json <value>] [--generate-cli-bone <value>]
update-function-code update-function-code - function-name <value> [--zip-file <value>] [--s3-bucket <value>] [--s3-key <value>] [--s3-object- phiên bản <giá trị>] [--publish | --no-Publishing] [--dry-run | --no-dry-run] [--revision-id <value>] [- cli-input-json <value>] [- create-cli-bone <value>]
delete-function delete-function - function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]

Bây giờ, chúng ta hãy thảo luận chi tiết từng lệnh này.

chức năng tạo

Api này sẽ tạo một hàm lambda mới. Mã cần được cung cấp ở định dạng zip. Nếu chức năng được tạo đã tồn tại, api sẽ bị lỗi. Lưu ý rằng tên hàm có phân biệt chữ hoa chữ thường.

Lệnh bao gồm

Danh sách các lệnh mà bạn có thể sử dụng với hàm tạo được đưa ra ở đây:

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

Tùy chọn bao gồm

Các tùy chọn khác nhau mà bạn có thể sử dụng với các chức năng trên như sau:

--function-name (string)- Cái này lấy tên của hàm. Tên có thể là các ký tự 64 bit.

--runtime(string)- Ở đây bạn cần chỉ định môi trường thời gian chạy tức là lựa chọn ngôn ngữ. Các chi tiết của thời gian chạy như được đưa ra bên dưới -

Các tùy chọn có sẵn thời gian chạy
Python v3.6 python3,6
Python v2.7 python2,7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Đi go1.x

--role(string)- Đây sẽ là tên của chính sách lambda tức là vai trò được trao cho hàm lambda để truy cập các dịch vụ khác. Nó sẽ có quyền theo vai trò được chỉ định.

--handler (string) - Đây là tên của trình xử lý nơi bắt đầu thực thi mã lambda.

  • Đối với nodejs, tên trình xử lý là tên mô-đun mà chúng tôi xuất.
  • Đối với java, nó là package.classname :: handler hoặc package.classname
  • Đối với python, trình xử lý là nameofthefile.

--code (structure) −AWS mã Lambda

--description (string) - mô tả cho hàm AWS Lambda

--timeout (integer)- timeout sẽ có thời gian mà hàm lambda phải kết thúc thực thi. Mặc định là 3 giây.

--memory-size (integer)- Đây là vùng nhớ được cấp cho hàm aws lambda. AWS sẽ phân bổ lượng CPU và phân bổ bộ nhớ dựa trên bộ nhớ đã cho.

--environment (structure) - nó là một đối tượng với các chi tiết môi trường được yêu cầu trong hàm aws lambda.

e.g : Variables = {Name1 = string, Name2 = string}

--kms-key-arn (string)- đây là tên tài nguyên amazon (ARN) được sử dụng để mã hóa các biến môi trường. Nếu không được cung cấp, nó sẽ lấy cài đặt mặc định để mã hóa.

--zip-file (blob) - đường dẫn của tệp zip có các chi tiết của mã.

--cli-input-json (string): Thực hiện hoạt động dịch vụ dựa trên chuỗi JSON được cung cấp. Chuỗi JSON tuân theo định dạng được cung cấp bởi --generate-cli-khung xương. Nếu các đối số khác được cung cấp trên dòng lệnh, các giá trị CLI sẽ ghi đè các giá trị do JSON cung cấp.

Bây giờ, chúng ta hãy tạo một hàm AWS Lambda đơn giản bằng cách sử dụng thời gian chạy dưới dạng nodejs và thêm một số console.logs sẽ được in.

Hãy xem xét một mã mẫu để hiểu giống nhau -

exports.handler = async (event) => {
   console.log("Using aws cli");
   return 'Hello from Lambda from aws cli!'
};

Bây giờ, hãy nén tệp và lưu trữ dưới dạng awscli.zip.

Nhận ARN

Đối với vai trò, chúng ta hãy sử dụng arntừ vai trò hiện có mà chúng tôi đã tạo. Để có được ARN, bạn sẽ phải làm theo các bước như hình dưới đây. Quan sát các ảnh chụp màn hình tương ứng ở bất cứ nơi nào được đính kèm -

Bước 1

Đi tới IAM và chọn vai trò bạn muốn Roles. Chi tiết ARN cho vai trò được hiển thị như hình dưới đây. Sử dụngRole ARN với create-function trong aws cli.

Quan sát ở đây rằng vai trò của arn là: arn: aws: iam :: 625297745038: role / lambdaapipolicy

Lệnh có các giá trị cho create-function như sau -

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"

Bây giờ, nếu bạn chạy lệnh trong aws cli, bạn có thể tìm thấy kết quả như hình dưới đây:

Trong bảng điều khiển AWS, hàm Lambda được hiển thị như hình dưới đây:

Chi tiết các chức năng được hiển thị tại đây -

Các chi tiết của cấu hình như dưới đây:

Bạn có thể kiểm tra chức năng và kiểm tra đầu ra như hình:

Đầu ra Nhật ký tương ứng được hiển thị ở đây -

danh sách-chức năng

Api này cung cấp danh sách các hàm được tạo cho đến nay trong AWS Lambda.

Lệnh bao gồm

Sau đây là các lệnh được liên kết với API này:

list-functions
[--master-region <value>]
[--function-version <value>]
[--max-items <value>]
[--cli-input-json <value>]

Các tùy chọn trong danh sách chức năng

Sau đây là các tùy chọn khác nhau mà bạn có thể sử dụng trong api danh sách chức năng này:

--master-region(string)- tùy chọn. Khu vực mà từ đó các chức năng cần được hiển thị.

--function-version(string)- tùy chọn. Điều này sẽ cung cấp cho phiên bản chức năng.

--max-items(integer)- tùy chọn. Điều này sẽ cung cấp cho các mặt hàng theo giá trị được chỉ định.

--cli-input-json(string)- tùy chọn. Sẽ thực hiện thao tác dựa trên tệp json được cung cấp.

Lệnh với các giá trị list-functions như sau -

aws lambda list-functions --max-items 3

Lệnh hiển thị chi tiết như sau:

hàm get

Api này sẽ cung cấp chi tiết về các chức năng và cũng có một liên kết url có tệp zip được tải lên bằng cách sử dụng hàm tạo. Url với chi tiết zip sẽ chỉ có hiệu lực trong 10 phút.

Lệnh bao gồm

Sau đây là các lệnh liên quan đến api này:

get-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Tùy chọn bao gồm

--function-name- Tên của hàm AWS Lambda. Bạn cũng có thể chỉ định Tên tài nguyên Amazon của hàm.

--qualifier(string)- Không bắt buộc. Phiên bản chức năng có thể được sử dụng để có được các chi tiết của chức năng.

Lệnh có các giá trị cho hàm get là:

aws lambda get-function --function-name awslambdausingcli

Chi tiết hiển thị lệnh như sau:

Nó cung cấp cho url có mã zip được tải lên. Trong trường hợp trên, url là -

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

Điều này sẽ cung cấp chi tiết cấu hình của chức năng AWS Lambda.

Sau đây là các lệnh được sử dụng cùng với api này:

get-function-configuration
--function-name <value>
[--qualifier <value>]

The following are the options used with

--function-name (string) −tên của hàm lambda aws. Bạn cũng có thể chỉ định Tên tài nguyên Amazon của hàm.

--qualifier(string) − Tùy chọn. Phiên bản chức năng có thể được sử dụng để lấy thông tin chi tiết của chức năng.

Lệnh có các giá trị cho hàm get là:

aws lambda get-function-configuration --function-name awslambdausingcli

Lệnh hiển thị chi tiết như sau:

get-account-settings

Api này cung cấp các cài đặt tài khoản.

Lệnh liên quan

Lệnh mà bạn có thể sử dụng với api này là:

get-account-settings
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Các tùy chọn liên quan

Bạn có thể sử dụng các tùy chọn sau với api này:

--cli-input-json(string) − Thực hiện dịch vụ dựa trên chuỗi json được cung cấp.

--generate-cli-skeleton(string) − Nó in đầu ra json mà không cần gửi yêu cầu API.

Bạn có thể sử dụng lệnh sau cho get-account-settings -

aws lambda get-account-settings

Bạn có thể thấy kết quả sau khi thực hiện lệnh ở trên:

cập nhật-chức năng-cấu hình

Api này giúp cập nhật chi tiết cấu hình cho hàm AWS Lambda được tạo. Bạn có thể thay đổi bộ nhớ, thời gian chờ, trình xử lý, vai trò, thời gian chạy, mô tả, v.v.

Lệnh liên quan

Sau đây là các lệnh liên quan đến api update-function-configuration:

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

Các tùy chọn liên quan

Sau đây là các tùy chọn liên quan đến api update-function-configuration:

--function-name − tên của hàm lambda aws

--role (string) −không bắt buộc. ARN của vai trò cần được cập nhật.

--handler (string) −không bắt buộc. Trình xử lý chi tiết của hàm aws lambda.

--description(string) −không bắt buộc. Mô tả cho chức năng.

--timeout(integer) −không bắt buộc. Thời gian cần thiết để hàm lambda aws có thể kết thúc.

--memory-size(integer) −không bắt buộc. Đây là bộ nhớ được cấp cho hàm lambda aws. AWS sẽ phân bổ lượng CPU và phân bổ bộ nhớ dựa trên bộ nhớ đã cho.

--environment (structure) −không bắt buộc. Nó là một đối tượng với thông tin chi tiết về môi trường được yêu cầu trong hàm aws lambda.

e.g: Variables = {Name1 = string, Name2 = string}

--runtime(string) − Ở đây bạn cần chỉ định môi trường thời gian chạy tức là lựa chọn ngôn ngữ.

Chi tiết về thời gian chạy được hiển thị trong bảng dưới đây -

Các tùy chọn có sẵn thời gian chạy
Python v3.6 python3,6
Python v2.7 python2,7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Đi go1.x

--cli-input-json (string) −không bắt buộc. Thao tác này sẽ thực hiện thao tác trên api như được chỉ định trong chuỗi json được cung cấp.

--generate-cli-skeleton (string) −không bắt buộc. Điều này sẽ xuất ra khung JSON của tất cả các chi tiết mà không cần thực thi api. Đầu ra có thể được sử dụng làm đầu vào cho--cli-input-json.

Bây giờ, chúng ta hãy kiểm tra bộ nhớ và thời gian chờ của hàm AWS Lambda mà chúng ta đã tạo trước đó. Thực hiện theo các Bước dưới đây và quan sát các ảnh chụp màn hình tương ứng được đính kèm cho mục đích này -

Bước 1

Bộ nhớ và thời gian chờ trước khi thay đổi xảy ra như sau:

Bước 2

Bây giờ với update-function-configuration, chúng ta hãy thay đổi bộ nhớ và thời gian chờ thành 320MB và thời gian chờ thành 10 giây. Với mục đích này, hãy sử dụng lệnh sau với các giá trị:

aws lambda update-function-configuration --function-name “awslambdusingcli” 
--timeout 10 --memory-size 320

Bước 3

Sau đó, bạn có thể thấy đầu ra sau đây dưới dạng màn hình:

Bước 4

Màn hình trong bảng điều khiển AWS sau khi sử dụng update-function-configuration như sau -

Cập nhật-chức năng-mã

Api này sẽ cập nhật mã cho một hàm AWS Lambda hiện có.

Lệnh liên quan

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

Các tùy chọn liên quan

Sau đây là các tùy chọn liên quan đến api mã update-function-code:

--function-name(string) − tên của hàm lambda aws

--zip-file (blob) −không bắt buộc. Đường dẫn của tệp zip có mã được cập nhật.

--s3-bucket(string) −không bắt buộc. Tên nhóm S3 có tệp zip với mã được tải lên.

--s3-key(string) −không bắt buộc. Tên khóa đối tượng AWS s3 phải được tải lên.

--s3-object-version (string) −không bắt buộc. Phiên bản đối tượng AWS s3.

--cli-input-json (string) −không bắt buộc. Thao tác này sẽ thực hiện thao tác trên api như được chỉ định trong chuỗi json được cung cấp.

--generate-cli-skeleton (string) −không bắt buộc. Điều này sẽ xuất ra khung JSON của tất cả các chi tiết mà không cần thực thi api. Đầu ra có thể được sử dụng làm đầu vào cho --cli-input-json.

Mã được cập nhật như hình dưới đây -

exports.handler = async (event, context) => {
   console.log("Using aws cli");
   console.log()
   return 'Hello from Lambda from aws cli!'
};

Bạn có thể sử dụng những thứ sau command with values for this purpose -

aws lambda update-function-code --function-name "awslambdausingcli" 
--zip-file "fileb://awscli.zip"

Đầu ra tương ứng được hiển thị ở đây -

Màn hình từ bảng điều khiển AWS như được hiển thị ở đây -

Đầu ra nhật ký tương ứng như hình dưới đây -

chức năng xóa

Các delete aws cli api sẽ xóa chức năng đã cho.

Lệnh bao gồm

Chi tiết lệnh cho tương tự được đưa ra ở đây -

delete-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Tùy chọn bao gồm

Các tùy chọn bao gồm trong api này như được đưa ra bên dưới:

--function-name(string) − điều này sẽ lấy tên hàm lambda hoặc arn của hàm lambda aws.

--qualifier (string) −Đây là tùy chọn. Tại đây bạn có thể chỉ định phiên bản aws lambda cần được xóa.

-- cli-input-json(string) −Thực hiện hoạt động dịch vụ dựa trên chuỗi JSON được cung cấp. Chuỗi JSON tuân theo định dạng được cung cấp bởi --generate-cli-khung xương. Nếu các đối số khác được cung cấp trên dòng lệnh, các giá trị CLI sẽ ghi đè các giá trị do JSON cung cấp.

--generate-cli-skeleton(string) − nó in khung xương json ra đầu ra tiêu chuẩn mà không cần gửi yêu cầu API.

Bạn có thể sử dụng lệnh sau với các giá trị cho mục đích này:

aws lambda delete-function --function-name "lambdatestcli"

Bây giờ, hãy quan sát rằng hàm sẽ không được nhìn thấy trong danh sách hàm AWS Lambda -