本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在函數中使用鍵值對
您可以從函數中的索引鍵值存放區使用索引鍵值對。
此範例顯示使用HTTP請求URL中的 內容來查詢金鑰值存放區中的自訂路徑的函數。 CloudFront 然後, 使用該自訂路徑來提出請求。此函數有助於管理屬於網站一部分的多個路徑。
例如,如果先前的部落格具有原始路徑,/blog-v1
而新的部落格具有原始路徑 /blog-v2
,則此函數可以查詢傳入請求的URL路徑,並重新寫入(/blog-v1)
新版本的部落格 的URL路徑(/blog-v2)
。
注意
您必須將 JavaScript 執行期 2.0 用於下列程式碼範例。
import cf from 'cloudfront'; // This fails if there is no key value store associated with the function const kvsHandle = cf.kvs(); // Remember to associate the KVS with your function before referencing KVS in your code. // https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/kvs-with-functions-associate.html async function handler(event) { const request = event.request; // Use the first segment of the pathname as key // For example http(s)://domain/key/something/else const pathSegments = request.uri.split('/') const key = pathSegments[1] try { // Replace the first path of the pathname with the value of the key // For example http(s)://domain/value/something/else pathSegments[1] = await kvsHandle.get(key); const newUri = pathSegments.join('/'); console.log(`${request.uri} -> ${newUri}`) request.uri = newUri; } catch (err) { // No change to the pathname if the key is not found console.log(`${request.uri} | ${err}`); } return request; }