如何在模板文件中为 CloudFront 函数设置 FunctionCode 属性?
Posted
技术标签:
【中文标题】如何在模板文件中为 CloudFront 函数设置 FunctionCode 属性?【英文标题】:How to set FunctionCode property for a CloudFront Function in a template file? 【发布时间】:2021-08-09 00:07:21 【问题描述】:我正在尝试使用云形成(YAML 模板文件)在我的堆栈中部署 CloudFront 函数。如何为我的 CloudFront 函数指定 FunctionCode
(AWS docs) 属性?
AddhtmlPostfixFunction:
Type: AWS::CloudFront::Function
Properties:
Name: !Sub "$ApplicationName-add-html-postfix"
AutoPublish: true
FunctionCode: "---> Path to my .js-file? <---"
FunctionConfig:
Comment: "Adds .html postfix to viewer requests"
Runtime: cloudfront-js-1.0
除了CLI commands that has been documented from AWS 之外,我找不到任何此类示例。
【问题讨论】:
【参考方案1】:可以使用内联代码!
AddHTMLPostfixFunction:
Type: AWS::CloudFront::Function
Properties:
Name: !Sub "$ApplicationName-add-html-postfix"
AutoPublish: true
FunctionCode: |
function handler(event)
var hasExtension = /(.+)\.[a-zA-Z0-9]2,5$/
var request = event.request
var uri = request.uri
// If the request does not have any extension, add '.html'
if (uri && !uri.match(hasExtension))
request.uri = `$uri.html`
return request
FunctionConfig:
Comment: "Adds .html postfix to viewer requests"
Runtime: cloudfront-js-1.0
【讨论】:
我目前也面临同样的问题。是否只支持内联函数代码?或者是否有可能使用 URI?以上是关于如何在模板文件中为 CloudFront 函数设置 FunctionCode 属性?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mandrill 中为本机 Mailchimp 的合并标签设置值?