Hướng dẫn how to create api gateway in python - cách tạo api gateway trong python
Có nhiều ví dụ SDK AWS có sẵn trong các ví dụ SDK AWS doc repo.AWS Doc SDK Examples GitHub repo. Show
Các ví dụ mã sau đây cho thấy cách sử dụng Gateway API Amazon với Bộ phát triển phần mềm AWS (SDK).
Ví dụ mã
Cập nhật lần cuối: ngày 22 tháng 4 năm 2021 Một trong những thành phần bí mật của kỹ thuật phần mềm thực tế là đảm bảo các giải pháp đơn giản và nhỏ. Đó về cơ bản, những gì sự cường điệu xung quanh việc triển khai không có máy chủ là tất cả vì các ứng dụng không có máy chủ tự động theo nhu cầu và loại bỏ gánh nặng bảo trì khỏi các nhà phát triển. Tất nhiên, vì nó rất tự động, bạn sẽ mất một số quyền kiểm soát và tầm nhìn, nhưng thời gian và nỗ lực tiết kiệm rất khó để tranh luận. Trong bài viết này, chúng tôi sẽ sử dụng Python và Amazon Web Services (AWS) Lambda để triển khai API REST đơn giản bằng cách thực hiện các như sau: & NBSP;
Trong nhiệm vụ đơn giản, chúng tôi sẽ sử dụng AWS CloudFormation để xác định càng nhiều quy trình này càng tốt. Hãy nhớ lại rằng API REST chỉ đơn giản là một cách để lưu trữ và truy xuất thông tin với các giao thức không trạng thái. Trong trường hợp này, API REST của chúng tôi sẽ xử lý thông tin về mọi người vật nuôi. Để tạo nó, chúng tôi sẽ: & nbsp;
Ở đây, kế hoạch thực hiện của chúng tôi:
Python và AWS Lambda - Tổng quanChỉ trong trường hợp bạn mới đến AWS hoặc nền tảng không có máy chủ của họ được gọi là AWS Lambda, hãy để Lôi chạy qua một cái nhìn tổng quan nhanh:AWS Lambda, let’s run through a quick overview:
Bạn có thể tìm thấy tất cả các mã cho dự án này trong repo GitHub của tôi. REPO bao gồm một tài liệu API và mẫu cloudformation sẽ giúp mọi thứ chạy trong tài khoản AWS của bạn dễ dàng hơn. & NBSP; Nếu bạn không có tài khoản AWS, bạn có thể đăng ký tài khoản cấp miễn phí tại đây. Không nên có bất kỳ khoản phí nào để chạy ví dụ này trong tầng miễn phí và cách tiếp cận CloudFormation giúp bạn dễ dàng xóa mọi thứ khi bạn hoàn thành. 1 - Xác định API RESTAPI của chúng tôi sẽ lưu trữ các thông tin sau:
Bạn có thể xem API trong repo github của tôi (xem api.json) hoặc bạn chỉ có thể xem nó cùng với tài liệu tương tác cho nó trong repo Swaggerhub. API xác định hai điểm cuối:API.json), or you can just view it alongside the interactive documentation for it in the SwaggerHub repo. The API defines two endpoints:
2 - Thiết lập cơ sở hạ tầng không có máy chủChúng tôi sẽ sử dụng mẫu CloudFormation (CF) để thiết lập cơ sở hạ tầng cho ví dụ này. Bạn có hai lựa chọn: & nbsp;
Nếu bạn muốn tạo của riêng mình, bạn có thể:
Chỉ mất một hoặc hai phút để tạo ra tất cả các yếu tố của ngăn xếp mới. Nếu bạn thích cung cấp cơ sở hạ tầng theo cách thủ công, bạn sẽ cần phải tạo:
Bây giờ chúng tôi đã tạo ra cơ sở hạ tầng, chúng tôi sẽ chỉnh sửa mã trong mỗi chức năng Lambda để xử lý việc thêm và lấy các đối tượng PET từ bảng cơ sở dữ liệu. 3 - Mã các chức năng LambdaTrên bảng điều khiển AWS, điều hướng đến trang chủ Lambda nơi bạn sẽ thấy hai chức năng mà chúng tôi đã tạo trước đây. & NBSP;Lambda home page where you should see the two functions we created previously. Hãy bắt đầu bằng cách thực hiện điểm cuối bài. Nếu bạn thiết lập cơ sở hạ tầng của mình với mẫu CF, hàm được gọi là petlambda-set. & Nbsp;PetLambda-Set.
Chúng tôi sẽ sử dụng thư viện BOTO3, nơi cung cấp SDK AWS cho Python. Chúng tôi sẽ giữ mã đơn giản ngay bây giờ, nhưng bạn có thể thử nghiệm thêm các xác nhận và xử lý ngoại lệ. Sử dụng BOTO3, chúng tôi sẽ kết nối với bảng DynamoDB và chèn một bản ghi mới. Nếu bạn theo dõi, hãy sao chép mã bên dưới và thay thế mã Lambda bằng nó:boto3 library, which provides the AWS SDK for Python. We’ll keep the code simple for now, but you could experiment with adding validations and exception handling. Using boto3, we’ll connect to the DynamoDB table and insert a new record. If you’re following along, copy the code below, and replace the Lambda code with it: import boto3 def lambda_handler(event, context): client = boto3.resource('dynamodb') table = client.Table('Pets') response = table.put_item( Item={ 'id': event['id'], 'name': event['name'], 'breed': event['breed'], 'gender': event['gender'], 'owner': event['owner'], 'birthday': event['birthday'] } ) return { 'statusCode': response['ResponseMetadata']['HTTPStatusCode'], 'body': 'Record ' + event['id'] + ' added' } Nếu bạn muốn kiểm tra chức năng Lambda, hãy chọn tab thử nghiệm, hãy tạo thử nghiệm mới từ mẫu Hello-World và sử dụng bộ dữ liệu ví dụ được hiển thị bên dưới:Test tab, create a new test from the hello-world template, and use the example dataset shown below: { "id": "d290f1ee-6c54-4b01-90e6-d701748f0851", "name": "Hansie", "breed": "Dachshund", "gender": "Male", "owner": "Mike", "birthday": "2012-05-15" } Phản hồi sẽ trông tương tự như được hiển thị dưới đây: { "statusCode": 200, "body": "Record d290f1ee-6c54-4b01-90e6-d701748f0851 added" } Bây giờ, hãy để theo các bước tương tự để cập nhật hàm petlambda-get. Mã dưới đây: & nbsp;PetLambda-Get function. The code below:
import boto3 def lambda_handler(event, context): client = boto3.resource('dynamodb') table = client.Table('Pets') response = table.get_item( Key={ 'id': event['id'] } ) if 'Item' in response: return response['Item'] else: return { 'statusCode': '404', 'body': 'Not found' } Bạn có thể kiểm tra Lambda này bằng cách gửi dữ liệu thử nghiệm sau: { "id": "d290f1ee-6c54-4b01-90e6-d701748f0851" } 4 - Tạo cổng API thông qua bảng điều khiển AWSVới hai chức năng Lambda của chúng tôi được tạo và kết nối với cơ sở dữ liệu, đó là thời gian để thêm một cổng API để hiển thị chức năng API. Trên bảng điều khiển AWS, điều hướng đến trang chủ API Gateway và chọn tùy chọn Build để tạo API REST:API Gateway home page and select the Build option to create a REST API:
Tại thời điểm này, bạn có thể: & nbsp;
Hãy để làm như sau: & nbsp;
Bây giờ chúng tôi sẽ kết nối các điểm cuối GET và POST với từng chức năng Lambda của chúng tôi:
Định cấu hình điểm cuối GET là tương tự, mặc dù chúng tôi sẽ cần định cấu hình một cách để ánh xạ chuỗi truy vấn đến các tham số Lambda: & nbsp;GET endpoint is similar, although we’ll need to configure a way to map the query string to the Lambda parameters:
Chọn Thực thi Phương thức để quay lại trang Cấu hình chính để nhận điểm cuối.Generate Template box, paste the following: { "id": "$input.params('id')" } Chọn hộp yêu cầu tích hợp. & NBSP;Save when you’re done. Trong các mẫu ánh xạ, chọn khi không có mẫu được xác định (được đề xuất). & NBSP;Chọn tùy chọn để thêm mẫu ánh xạ. & NBSP;Actions, and choose Deploy API.
Đặt loại nội dung thành Ứng dụng/JSON và chọn dấu kiểm để lưu giá trị. & NBSP;[New Stage] from the Deployment stage dropdown, and then enter a name (such as Test) and a description. Click Deploy when you’re done. Trong hộp Mẫu tạo, dán như sau: Cấu hình này sẽ ánh xạ tham số chuỗi truy vấn đến tham số đầu vào cho Lambda. Nhấp vào Lưu khi bạn hoàn thành./pet?id=d290f1ee-6c54-4b01-90e6-d701748f0851 to the end of it. If you followed this example and tested your Lambda with the data set I provided, you should see the JSON object returned in your browser. 5 - Triển khai và kiểm tra cổng API/pet to the end of the URL provided for you. Python và AWS Lambda - kết thúcHãy nhớ rằng AWS tính phí bạn cho tất cả mọi thứ mà chạy trên tài khoản của bạn, vì vậy khi bạn đã thực hiện ví dụ trong bài đăng này, đừng quên làm sạch API, Lambdas và cơ sở hạ tầng khác. Cách đơn giản nhất là:
Nếu bạn muốn tìm hiểu thêm về Gateway API Amazon, thì Hướng dẫn nhà phát triển là một nơi tuyệt vời để bắt đầu. Như bạn có thể thấy từ ví dụ trên, nếu bạn có tài liệu API, nó không mất nhiều thời gian để cung cấp các chức năng Lambda và định cấu hình chúng đằng sau một cổng API.Developer Guide is an excellent place to start. As you can see from the example above, if you have an API document, it doesn’t take much to provision Lambda functions and configure them behind an API gateway. Nếu bạn muốn khám phá thêm những gì bạn có thể làm với Python và AWS Lamda, hãy thử môi trường Python điện toán đám mây được xây dựng sẵn của chúng tôi cho Windows, Mac và Linux. Nó kết hợp Python 3.8.2 và BOTO3 để bạn có thể cài đặt nó và bắt đầu điều khiển triển khai AWS của mình bằng Python ngay lập tức!
Đề xuất đọc
Tôi có thể tạo cổng API của riêng mình không?Bạn có thể tạo một hoặc nhiều cổng API để xử lý lưu lượng truy cập từ các máy khách API và định tuyến nó đến các dịch vụ back-end. Sau khi tạo một cổng API, sau đó bạn triển khai API trên cổng API bằng cách tạo triển khai API. to process traffic from API clients and route it to back-end services. Having created an API gateway, you then deploy an API on the API gateway by creating an API deployment.
API Postman có phải là một cửa ngõ không?Tích hợp Cổng API AWS Postman cung cấp cho bạn một cách nhanh hơn để thiết kế API của bạn bằng Trình tạo API Postman, xác định tất cả các chi tiết về API của bạn bằng Swagger hoặc OpenAPI và tự động tổng hợp các chi tiết đó vào Cổng API AWS. provides you with a quicker way to design your APIs using Postman API Builder, defining all the details of your APIs using Swagger or OpenAPI, and auto-syncing those details to the AWS API Gateway.
Cổng API cho người mới bắt đầu là gì?API Gateway là một công cụ quản lý API nằm giữa máy khách và bộ sưu tập các dịch vụ phụ trợ.Cổng API hoạt động như một proxy ngược để chấp nhận tất cả các cuộc gọi giao diện lập trình ứng dụng (API), tổng hợp các dịch vụ khác nhau cần thiết để thực hiện chúng và trả về kết quả thích hợp.an API management tool that sits between a client and a collection of backend services. An API gateway acts as a reverse proxy to accept all application programming interface (API) calls, aggregate the various services required to fulfill them, and return the appropriate result.
Làm thế nào để Python kết nối với API REST?Python và API REST: Tương tác với các dịch vụ web.. Xác định tài nguyên .. Xác định điểm cuối của bạn .. Chọn định dạng trao đổi dữ liệu của bạn .. Thiết kế phản hồi thành công .. Phản hồi lỗi thiết kế .. |