400-638-8808
|
微信公眾號(hào)








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

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

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

超大郵件 超級(jí)功能

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

微信掃一掃 關(guān)注"天下數(shù)據(jù)"商品一律九折
![]()
搜索"朗玥科技"關(guān)注,了解最新優(yōu)惠

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

在 AWS Lambda 代碼中,我們將獲取請(qǐng)求標(biāo)頭并檢查用戶代理。如果用戶代理來自桌面,我們將更改響應(yīng)以將消息顯示為 "桌面:歡迎使用 Cloudfront 的 AWS Lambda!",如果設(shè)備消息將是 "移動(dòng)設(shè)備:來自 Lambda@Edge,您好!"
對(duì)應(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ù)。請(qǐng)注意,我們需要發(fā)布 Lambda 函數(shù),以便它可以用于所有區(qū)域。要發(fā)布,我們需要執(zhí)行以下操作-
從操作下拉列表中,選擇 發(fā)布新版本,如下所示-

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

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

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

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

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

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

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

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