400-638-8808
|
微信公眾號





穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無阻

協(xié)同辦公 資源管理

超大郵件 超級功能

智能反垃圾郵件技術(shù)
易管理 免維護

Lambda@Edge 是 AWS Lambda 計算服務(wù)的補充,用于自定義 Cloudfront 提供的內(nèi)容。
顯示 AWS Lambda 與來自 AWS 的 cloudfront 的工作的框圖如下所示-

AWS Lambda 有四種使用方式-
查看器請求- 最終用戶向 CloudFront 發(fā)出名為"查看器請求"的請求源請求- CloudFront 將請求轉(zhuǎn)發(fā)到源源響應(yīng)- CloudFront 從源接收響應(yīng)查看者響應(yīng)- CloudFront 將響應(yīng)發(fā)送給查看者
我們可以將 Lambda@Edge 用于以下目的-
在請求和響應(yīng)時更改標(biāo)頭。將 cookie 詳細信息添加到標(biāo)題中。根據(jù)請求和響應(yīng)執(zhí)行 AB 測試。根據(jù)標(biāo)題詳細信息將 URL 重定向到另一個站點。我們可以從標(biāo)頭中獲取用戶代理并找出瀏覽器、操作系統(tǒng)等的詳細信息。
要開始使用 CloudFront 和 Lambda@Edge,我們需要以下內(nèi)容-
使用文件詳細信息創(chuàng)建 S3 存儲桶創(chuàng)建允許使用 CloudFront 和 Lambda@Edge 的角色創(chuàng)建 CloudFront 分配創(chuàng)建 lambda 函數(shù)向 cloudfront 添加 lambda 函數(shù)詳細信息在瀏覽器中檢查 cloudfront url
我們將使用 CloudFront 和 Lambda@Egde 處理一個示例,其中我們將托管頁面并在檢測到桌面和設(shè)備時更改響應(yīng)。
登錄 AWS 控制臺并在 S3 中創(chuàng)建一個存儲桶并添加 。 html 要顯示的文件。

點擊 S3和 創(chuàng)建存儲桶,如下所示-

現(xiàn)在,單擊 創(chuàng)建存儲桶按鈕并添加存儲桶的詳細信息,如下所示-

點擊 創(chuàng)建按鈕并上傳其中的 .html。

轉(zhuǎn)到 AWS 控制臺并單擊 IAM。

現(xiàn)在,點擊 Roles-> Create role 按鈕,如圖所示-

為 S3、Lambda 和 Cloudfront 選擇權(quán)限。創(chuàng)建策略只允許使用 ARN 詳細信息存儲所需的功能是一種很好的做法。
在下面討論的示例中,我們顯示了 完全訪問權(quán)限。如上所示,添加了角色名稱 role for cloudfront 的策略。點擊創(chuàng)建角色。


lambda@edge 和 cloudfront 所需的所有策略如上所示。這里還有一個額外的步驟要完成,因為在 cloudfront 的情況下,url 將跨區(qū)域可用,并且它需要我們使用的服務(wù)之間的信任關(guān)系。
現(xiàn)在,對于創(chuàng)建的角色,點擊 信任關(guān)系標(biāo)簽,如圖所示-

點擊 編輯信任關(guān)系,如下圖所示-

它顯示一個策略文檔。我們需要在我們計劃使用的 Principal-> Service 中添加其他服務(wù)。最終的信任關(guān)系政策文件如下圖所示-

點擊 更新信任策略按鈕保存更改。
轉(zhuǎn)到 CloudFront 服務(wù),如下所示-

點擊 CloudFront 服務(wù),然后點擊 創(chuàng)建分配-

讓我們一一研究這些設(shè)置-
原點設(shè)置

Origin 設(shè)置的各種參數(shù)解釋如下-
Origin Domain Name- 這是我們存儲 html 文件的 S3 存儲桶的名稱。我們還可以通過創(chuàng)建我們選擇的文件夾將圖像(如果有)存儲在 S3 存儲桶中。
Origin Path- 在這里您需要輸入存儲文件的文件夾的名稱。目前我們沒有這個文件夾,所以暫時留空。
原點ID - 在選擇原始域名時填充。您可以根據(jù)自己的選擇更改 ID。
限制存儲桶訪問- 在此,我們將選擇選項 是。在這里,我們需要 S3 存儲桶的安全性,以便沒有人可以訪問 S3 存儲桶。對于此選項,還填充了更多選項,例如 Origin Access Identity、Comment 和 Grant Read Permission on Bucket。
Origin Access Identity- 我們使用了創(chuàng)建新的身份選項。您還可以選擇現(xiàn)有身份。這會創(chuàng)建一個新身份,CloudFront 使用該身份從 S3 存儲桶中讀取詳細信息。
存儲桶的大讀取權(quán)限- 為此,選擇選項 是。
Origin 自定義標(biāo)題- 我們將此處的標(biāo)題留空,因為我們現(xiàn)在不需要詳細信息。
接下來,讓我們討論并填寫 Cloudront 分發(fā)的 行為設(shè)置-

現(xiàn)在,選擇協(xié)議-https 或 http,以及緩存選項。請注意,默認(rèn)緩存是 86400 或 24 小時。您可以根據(jù)需要更改此值。
單擊 對象緩存(自定義選項)以更改緩存。如果您的頁面上有任何視頻,您可以使用 流暢流式傳輸。在這里,我們保持默認(rèn)選項可用。創(chuàng)建 lambda 函數(shù)后,將添加其詳細信息。
分發(fā)設(shè)置的詳細信息如下所示-

分布設(shè)置的各種參數(shù)解釋如下-
價格等級- 它包含用戶流量來源等詳細信息。請注意,這里我們選擇了默認(rèn)值- 使用所有邊緣位置。
AWS WAF Web ACL- 這是用于 Web 應(yīng)用程序防火墻選擇。在這里,它的選項為 無。首先,我們需要在 AWS 中創(chuàng)建防火墻。它為網(wǎng)站提供安全保障。
備用域名- 如果有,您可以在此處指定域名。
SSL 證書- 這包含要為 SSL 證書選擇的所有詳細信息。我們將保留默認(rèn)的。
默認(rèn)根對象- 這里我們將指定我們在 S3 中上傳的文件名。為此,我們需要默認(rèn)顯示 .html 中的內(nèi)容。
其余的,我們將保持默認(rèn)設(shè)置。
點擊 創(chuàng)建分配按鈕添加分配。

請注意,分發(fā)將需要一些時間才能顯示已部署狀態(tài)。
轉(zhuǎn)到 AWS 控制臺并創(chuàng)建 Lambda 函數(shù)。

在 AWS Lambda 代碼中,我們將獲取請求標(biāo)頭并檢查用戶代理。如果用戶代理來自桌面,我們將更改響應(yīng)以將消息顯示為 "桌面:歡迎使用 Cloudfront 的 AWS Lambda!",如果設(shè)備消息將是 "移動設(shè)備:來自 Lambda@Edge,您好!"
對應(yīng)的AWS Lambda代碼如下圖-
let content = `
<\!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Simple Lambda@Edge static Content Response</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>MOBILE DEVICES : Hello from Lambda@Edge!</h1>
</body>
</html>
`;
let content1 = `
<\!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Simple Lambda@Edge static Content Response</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>DESKTOP : Welcome to AWS Lambda with Cloudfront!</h1>
</body>
</html>
`;
exports.handler = (event, context, callback) => {
let request = event.Records[0].cf.request;
let finalrequest = JSON.stringify(request);
let headers = request.headers;
let useragent = JSON.stringify(headers["user-agent"][0].value);
let str = "";
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(useragent)) {
str = content;
} else {
str = content1;
}
const response = {
status: "200",
statusDescription: "OK",
body: str+useragent,
};
callback(null, response);
};
現(xiàn)在,保存 Lambda 函數(shù)。請注意,我們需要發(fā)布 Lambda 函數(shù),以便它可以用于所有區(qū)域。要發(fā)布,我們需要執(zhí)行以下操作-
從操作下拉列表中,選擇 發(fā)布新版本,如下所示-

如果您點擊 發(fā)布新版本,它會顯示以下屏幕-

現(xiàn)在,輸入版本描述并點擊 發(fā)布。 ARN 將顯示創(chuàng)建的 AWS Lambda 函數(shù)的版本,如下所示-

將 CloudFront 觸發(fā)器添加到創(chuàng)建的新版本,如下所示-

現(xiàn)在,添加 CloudFront 的配置詳細信息。 CloudFront 事件具有用于 查看者請求、源請求、源響應(yīng)和 的選項觀眾反應(yīng)。
接下來,選擇之前創(chuàng)建的 CloudFront 分配。從 事件中,我們將選擇 查看者請求。根據(jù)查看器的請求,將決定來自用戶代理的桌面/設(shè)備并更改響應(yīng)。接下來,添加觸發(fā)器詳細信息。

添加觸發(fā)器后,我們需要等待 CloudFront 的分配部署完畢。

狀態(tài)更改為 已部署后,我們可以測試CloudFront url并在瀏覽器中檢查域名。
桌面瀏覽器顯示如下圖。在這里,我們打印了查看者請求事件中的用戶代理。

這是移動設(shè)備中的顯示。

因此,在上面的示例中,我們使用 Lambda@Edge 更改桌面和移動設(shè)備上的響應(yīng)。
作為AWS頂級代理商,選擇天.下.數(shù).據(jù)的優(yōu)勢
1、專屬客服協(xié)助注冊AWS,或提供注冊好的賬號直接使用
2、支持收U等多幣種支付代付,無額外服務(wù)費用
3、AWS多種產(chǎn)品類型,更高產(chǎn)品租賃權(quán)限
4、針對大客戶,AWS專屬折扣優(yōu)惠
5、7x24小時專屬客服,在線解答各種疑問
詳詢電話40 0-63 8-88 08 官網(wǎng):http://m.51huadong.com/2023/aws.asp
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國服務(wù)器 韓國服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺灣服務(wù)器云服務(wù)器
香港云主機 美國云主機 韓國云主機 新加坡云主機 臺灣云主機 日本云主機 德國云主機 全球云主機高防專線
海外高防IP 海外無限防御 SSL證書 高防CDN套餐 全球節(jié)點定制 全球?qū)>GPLC關(guān)于我們
關(guān)于天下數(shù)據(jù) 數(shù)據(jù)招商加盟 天下數(shù)據(jù)合作伙伴 天下數(shù)據(jù)團隊建設(shè) 加入天下數(shù)據(jù) 媒體報道 榮譽資質(zhì) 付款方式關(guān)注我們
微信公眾賬號
新浪微博
天下數(shù)據(jù)手機站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國服務(wù)器、海外云主機、海外vps主機租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證》 ISP證:粵ICP備07026347號
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運營)聯(lián)合版權(quán)
深圳總部:中國.深圳市南山區(qū)深圳國際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號建安商業(yè)大廈7樓
7×24小時服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品