Làm cách nào để chuyển nhiều tiêu đề trong cURL trong PHP?

Tôi muốn định cấu hình hàm AWS Lambda thông qua tích hợp tùy chỉnh (không phải proxy) để xử lý các tiêu đề tùy chỉnh được chuyển qua API Amazon API Gateway của tôi. Làm thế nào để tôi thiết lập nó?

Mô tả ngắn

Theo mặc định, một hàm Lambda chỉ xử lý những gì nó nhận được từ một yêu cầu API của API Gateway. Để chuyển tiêu đề tùy chỉnh từ API Cổng API sang hàm Lambda, hãy sử dụng mẫu ánh xạ nội dung. API gửi yêu cầu API đã cập nhật tới một hàm Lambda để xử lý các tiêu đề. Sau đó, hàm Lambda trả về một hoặc nhiều giá trị tiêu đề từ yêu cầu API ban đầu

Nghị quyết

Định cấu hình các quyền AWS Identity and Access Management (IAM) bắt buộc

Tạo một hàm Lambda để xử lý các tiêu đề tùy chỉnh từ API Cổng API của bạn

1. Mở bảng điều khiển Lambda

2. Chọn chức năng Tạo. Trang Chức năng tạo mở ra với tùy chọn Tác giả từ đầu được chọn

3. Trong ngăn Thông tin cơ bản, hãy làm như sau.
Đối với Tên chức năng, hãy nhập tên mô tả mục đích của chức năng của bạn. Ví dụ. Tiêu đề tùy chỉnh.
Đối với Thời gian chạy, hãy chọn Nút. js 14. x.

4. Trong Quyền, mở rộng Thay đổi vai trò thực thi mặc định

5. Chọn Sử dụng một vai trò hiện có. Một danh sách thả xuống của các vai trò hiện có xuất hiện

6. Đối với Vai trò hiện tại, hãy chọn vai trò thực thi Lambda mà bạn đã tạo trước đó

7. Chọn chức năng Tạo

8. Trên ngăn Nguồn mã, thay thế mã trong ngăn trình soạn thảo (chỉ mục. js) với nội dung sau

exports.handler = (event, context, callback) => {
// TODO implement
callback(null, "This message header was processed by Amazon " +event.headers["header1"]);
};

Tạo API REST của Cổng API

1. Mở bảng điều khiển Cổng API

2. Chọn Tạo API

-hoặc-

(Nếu đây là lần đầu tiên bạn sử dụng API Gateway) Một trang giới thiệu cho bạn các tính năng của dịch vụ sẽ xuất hiện. Trong API REST, chọn Xây dựng. Khi cửa sổ bật lên Tạo ví dụ API xuất hiện, hãy chọn OK

3. Đối với Chọn loại API, trong ngăn API REST, chọn Xây dựng

4. Trong Tạo API mới, chọn API mới

5. Trong Cài đặt, hãy làm như sau.
Đối với tên API, hãy nhập tên mô tả mục đích API của bạn. Ví dụ. SendtoLambda.
(Tùy chọn) Đối với Mô tả, hãy nhập mô tả ngắn về mục đích API của bạn.
Đối với Loại điểm cuối, hãy chọn Khu vực.

6. Chọn Tạo API

Định cấu hình mẫu ánh xạ cơ thể và điểm tích hợp API của bạn

1. Trong bảng điều khiển API Gateway, chọn tên của API mà bạn đã tạo ở bước trước. Trang Tài nguyên của API của bạn sẽ mở ra

2. Trên trang Tài nguyên, chọn Hành động. Sau đó, chọn Tạo tài nguyên

3. Trong ngăn Tài nguyên con mới, hãy làm như sau.
Đối với Tên tài nguyên, hãy nhập tên mô tả tài nguyên. Ví dụ. tiêu đề tài nguyên.
Chọn Tạo tài nguyên.

4. Chọn hành động. Sau đó, chọn Tạo phương thức

5. Từ danh sách thả xuống bên dưới /headersresource, chọn POST. Sau đó, chọn biểu tượng dấu kiểm

6. Trên trang /headersresource - POST - Setup, hãy làm như sau.
Đối với loại Tích hợp, hãy chọn Hàm Lambda.
Đối với Khu vực Lambda, hãy chọn Khu vực AWS lưu trữ chức năng của bạn.
Đối với Hàm Lambda, hãy nhập tên hàm của bạn.
Chọn Lưu. Cửa sổ bật lên Thêm quyền vào Hàm Lambda xuất hiện.
Trong cửa sổ bật lên, chọn OK.

7. Trên trang /headersresource - POST - Method Execution, chọn Integration Request

8. Trên trang /headersresource - POST - Integration Request, hãy làm như sau.
Mở rộng mẫu ánh xạ.
Đối với thông qua nội dung Yêu cầu, hãy chọn Khi không có mẫu nào được xác định (được khuyến nghị).
Chọn Thêm mẫu ánh xạ.
Đối với Loại nội dung, hãy nhập application/json. Sau đó, chọn biểu tượng dấu kiểm.

9. Trong trình chỉnh sửa mẫu ánh xạ, hãy nhập thông tin sau

{
  "method": "$context.httpMethod",
  "body" : $input.json('$'),
  "headers": {
    #foreach($param in $input.params().header.keySet())
    "$param": "$util.escapeJavaScript($input.params().header.get($param))"
    #if($foreach.hasNext),#end
    #end
  }
}

Triển khai API của bạn sang một giai đoạn mới

https://1a2bc3d456.execute-api.region.amazonaws.com/test

Kiểm tra thiết lập của bạn

Để xác nhận rằng các tiêu đề thư đang được API và hàm Lambda của bạn xử lý, hãy chạy lệnh curl sau

Quan trọng. thay thế https. // phần còn lạiApiId. thực thi-api. khu vực. amazonaws. com/stageName bằng URL gọi API của bạn

Làm cách nào để chuyển các tiêu đề trong Curl PHP?

Để gửi tiêu đề HTTP với yêu cầu Curl, bạn có thể sử dụng tùy chọn dòng lệnh -H và chuyển tên và giá trị tiêu đề vào "Key. định dạng giá trị" . Nếu bạn không cung cấp giá trị cho tiêu đề, điều này sẽ xóa tiêu đề tiêu chuẩn mà Curl sẽ gửi. Số lượng tiêu đề HTTP là không giới hạn.

Curl_setopt_array trong PHP là gì?

bool curl_setopt_array ( tài nguyên ch, tùy chọn mảng ) Đặt nhiều tùy chọn cho phiên CURL . Chức năng này rất hữu ích để thiết lập một số lượng lớn tùy chọn CURL mà không cần gọi lặp đi lặp lại curl_setopt().

Làm cách nào để sử dụng ủy quyền cơ bản trong PHP Curl?

Để gửi thông tin đăng nhập xác thực cơ bản bằng Curl, hãy sử dụng thông tin đăng nhập "-u. mật khẩu" tùy chọn dòng lệnh . Curl tự động chuyển đổi thông tin đăng nhập. ghép mật khẩu thành một chuỗi được mã hóa Base64 và thêm phần "Ủy quyền. Tiêu đề [mã thông báo] cơ bản cho yêu cầu.

curl_exec là gì?

curl_exec(CurlHandle $handle ). chuỗi. bool. Thực thi phiên cURL đã cho . Chức năng này sẽ được gọi sau khi khởi tạo phiên cURL và tất cả các tùy chọn cho phiên được đặt.