全部產品
Search
文件中心

Simple Log Service:基於CloudFront匯入Amazon S3資料

更新時間:Apr 21, 2026

背景

為滿足資料分析、審計及監控業務需求,我們將 Amazon S3 儲存的檔案資料同步至 SLS(Simple Log Service)系統進行統一處理與檢索。然而,隨著資料輸送量的持續增長,AWS S3 直接出站流量費用已成為營運成本的主要壓力點。尤其在跨雲或大檔案傳輸情境下,S3 直連不僅單價較高,而且在高並發拉取時易受網路波動影響,導致傳輸效率不穩定。

本文介紹通過 Amazon CloudFront 來最佳化資料轉送鏈路。通過將 S3 配置為 CloudFront 來源站點,並將 SLS 資料拉取端點切換至 CloudFront 網域名稱,利用其邊緣分發能力替代直連。基於 CloudFront 更優的流量階梯定價及全球網路特性,在降低頻寬成本的同時,提升檔案下載的成功率與吞吐效能,實現成本與穩定性的雙重最佳化。這裡我們僅使用 CloudFront 來擷取檔案資料,仍使用原模式(通過 SQS 或直連 S3)來擷取檔案中繼資料。若有安全需求,可以使用 CloudFront 提供的函數功能來對請求進行鑒權。接下來將依次介紹:1. 鑒權函數配置;2. CloudFront 詳細配置;3. Distribution 關聯函數;4. S3 匯入任務的建立。

重要

本文檔為阿里雲原創,智慧財產權歸阿里雲所有。由於本文檔旨在介紹阿里雲與第三方產品互動的服務能力,因此可能會提及第三方公司或其產品名稱。

鑒權函數配置

步驟一:建立函數

在CloudFront中函數頁建立函數,Runtime使用cloudfront-js-2.0image.png

image.png

步驟二:編輯鑒權函數並發布

使用以下代碼,修改Token後構建函數並儲存。測試後發布。

function handler(event) {
    var request = event.request;
    var headers = request.headers;

    // 定義你的 Token(請替換為一個隨機產生的強密碼字串)
    var expectedToken = 'xxxxxx';

    // 校正 X-CF-Token Header
    if (!headers['x-cf-token'] || headers['x-cf-token'].value !== expectedToken) {
        return {
            statusCode: 403,
            statusDescription: 'Forbidden',
            body: {
                encoding: 'text',
                data: 'Access Denied'
            }
        };
    }

    // 校正通過,繼續轉寄請求
    return request;
}

image.png

image

CloudFront詳細配置

步驟一:建立Distribution

在CloudFront中分配頁建立分配,並選擇合適的plan。image

image.png

步驟二:命名Distribution

在Distribution Options 中設定Distribution name,設定Distribution type為Single website or app後進入下一步。

image.png

步驟三:源配置為S3

  1. Origin type選擇 Amazon S3類型,然後點擊Browse S3按鈕,瀏覽選擇目標Bucket。image.png

  2. Origin settings保持預設。Cache settings選擇自訂然後緩衝策略選擇CachingDisabled。

    image.png

步驟四:安全防護按需開啟

按照自己的安全需求選擇是否開啟安全防護。image.png

步驟五:檢查配置並建立

檢查配置並建立,最後等待部署完成。部署狀態變為時間戳記,即表示部署完成。image.png

重要

建立匯入任務時,需要擷取這裡的Domain name。

Distribution關聯函數

步驟一:點擊Distribution進行配置

在分配列表中選擇CloudFront詳細配置建立的Distribution,在行為頁中建立行為。image.png

image.png

步驟二:關聯函數

下拉至頁面底部,函數類型選擇CloudFront Functions,選擇鑒權函數配置定義的函數,最後點擊建立。image.png

建立S3匯入任務

步驟一:進入任務管理並開始建立匯入任務

  1. 登入Log Service控制台。單擊Project名稱,進入目標Project。

  2. 單擊左側導覽列的任務管理,在任務管理頁單擊數據匯入,單擊建立數據匯入任務

步驟二:開始接入

在彈出框單擊 S3-數據匯入立即接入,然後選擇需要接入的目標LogStore。

步驟三:配置任務資訊

填寫表單資訊,開啟是否使用CloudFront 按鈕,並填入上述步驟擷取的cloudFront domain name以及Token,預覽查看是否符合預期,最後點擊下一步即可。image.png

說明

此處主要介紹CloudFront相關配置,詳細配置參考匯入Amazon S3檔案