Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ tháng ba, 2020

Error và Exception trong Python

Errors và Exceptions


Trong phần này chúng ta chỉ nói đến Syntax error và Exception Error.
Trong lập trình chúng ta hay gặp phải syntax error là nhiều nhất. 
Syntax error là những lỗi cú pháp mà trong quá trình học tập hay gặp phải. 
Ví dụ: 

SyntaxError: invalid syntax
nếu cú pháp đúng sẽ là: >>>while True: print("Hello Thanh DevOps")
Exception : 
Exception xuất hiện khi một tthực thi một python script nào đó.  Trong phần tới chúng ta sẽ bàn thêm về handle exception trong python như thế nào nhé.
>>> 10 * (1/0) Traceback (most recent call last):   File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero
ZeroDivisionError: lỗi thi thực thi 1 phép tính chia cho 0 
>>> 4 + spam*3 Traceback (most recent call last):   File "<stdin>", line 1, in <module> NameError: name 'spam' is not defined
NameError: biến spam chưa đươc định nghĩa phía trên 
>>> '2' + 2 Traceback (most recent …

Hàm isinstance() và issubclass() trong python.

Trước tiên ta có ví dụ sau:

Kiểm tra xem 5 có phải là thuộc type : interger không ?

x = isinstance(5, int)

Định nghĩa và cách sử dụng: 
Do vậy định nghiã hàm isinstance là trả về True khi object muốn kiểm tra là thuộc dạng của object mong muốn và trả về False


Syntax: isinstance(object, type)
Thêm ví dụ:
x = isinstance("Hello", (float, int, str, list, dict, tuple))
"Hello" là một dạng dữ liệu trong list dạng dữ liệu mô tả trên thì trả về True
Ví dụ: 
class myObj:
  name = "John"

y = myObj()

x = isinstance(y, myObj)

Nếu y là một dạng của instance myObj thì trả về True 
Ví dụ phức tạp hơn : 

class X:         pass class Y(X):         pass class Z(Y):         pass
x = Z() z = Z()
print(isinstance(x,Z), isinstance(z,X))
Kết quả trả về : TrueTrue

Hàm issubclass() Kiểm tra xem class: tuoi có phải là subclass của class: thanhvien không ?
class thanhvien:
  thanhvien =

Class trong Python và tính kế thừa

Python là ngôn ngữ lập trình hướng đối tượng

Nên tất cả mọi thứ trong python đều là object với những properties và methods.


Tạo một Class trong python: Tạo một class trong pythong có tên là Person và property có tên là : x

class Person:
    x = 5 
Tạo một object:  Tạo một object tên là p1 và in ra giá trị x: p1 = Person()
print(p1.x) Hàm __init__ Các lớp (class) đều có một hàm ( function ) khi một class được khởi động thì hàm __init__luôn thực thi khi class khởi động (initiate) .

Ví dụ:

Tạo một class có tên là Person và và sử dụng hàm __init__ để gán giá trị cho name và age.

class Person:
     def __init__(self, name, age):
          self.name = name
          self.age = age   p1 = Person("Thanh", 35)  print(p1.name)
print(p1.age) Ví dụ 2 : Thêm một fuction để in ra câu chào mừng thực thi nó trên object p1.

class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
       def chaomung(self):
            print("chao mung den voi de…

Time out của lamBDA Aws như thế nào?

Chắc hẳn nếu bạn đã từng làm qua AWS Lambda serverless thì thông số time out của lambda và các thành phần liên quan quả là nhứt đầu phải không ạ.

Bài viết này tập trung phân tích thông số time out của AWS Lambda.

Các thành phần thông thường khi thiết kế một hệ thống lambda serverless là:

Event source : có thể là : Api Gateway,

Lambda function: lambda

Service : có thể là S3, dynamoDb, DocumentDB, SNS, ....




Event sourceAWS Api Gateway có thông số timeout tối đa là :29s 

Có nghĩa là khi một API được gọi vào thông qua AWS Api Gateway thì thời gian xử lý không quá 29s. Nó phù hợp hầu hết các các API ngoaị trừ các API có một chút về tính toán
DynamoDB Stream có khả đọc 40 000 đơn vị trong một table cùng một lúc.


Lambda function Thông số time out của lambda function có thể set lên tới 15 phút (900s )

Thông thường nó được set 5s. 
Concurrent Execution 
Có giá trị mặc định là 1 000 trên một aws account (authen thông qua 1 aws excute account).
Tức là nó có thể spin up lên 1000 containers cùng một …

Thiết lập bộ PDF generator trên AWS Lambda sử dụng python3 và thư viện wkhtmltopdf

I. GIỚI THIỆU:

Trong thời gian gần đây việc tạo một API với thuộc tính scale trở nên dễ dàng hơn trước với việc sử dụng serverless trên nên tảng hệ thống scale tự động sẵn có.

Trong bài viết này tôi sẽ set up một hệ thống API với tính năng scale có khả năng handle 1000 requests trong cùng một lúc.

Đồng thời tôi sẽ show cho bạn cách thiết lập một API với tính năng scale một cách dễ dàng đến mức nào và sau khi kêt thúc bài viết bạn có thể tạo một HTTP endpoint và bạn có thể POST lên một object JSON và nhận một liên kết link của file PDF trên AWS S3.

File JSON như sau:

{       "filename": "sample.pdf",       "html": "<html><head></head><body><h1>It works! This is the default PDF.</h1></body></html>" 
II. SET UP:

 1. Các yêu cầu cần thiết khi thiết lập:
    - Python3
    - Aws CLI được cài đặt và cấu hình
    - Serverless được cài đặt.

 2. Serverless

  Điều đầu tiên bạn phải khởi động một project dùng …