|
9 | 9 | "ConstraintDescription": "Must be a valid S3 Bucket.", |
10 | 10 | "MinLength": "1", |
11 | 11 | "MaxLength": "64", |
12 | | - "AllowedPattern": "[a-zA-Z][a-zA-Z0-9-]*" |
| 12 | + "AllowedPattern": "[a-zA-Z][a-zA-Z0-9-.]*" |
13 | 13 | }, |
14 | 14 | "OriginS3BucketRegion": { |
15 | 15 | "Description": "S3 bucket Region that will source your images.", |
|
32 | 32 | "us-west-2" |
33 | 33 | ] |
34 | 34 | }, |
| 35 | + "EnableCors": { |
| 36 | + "Description": "Will this API require Cross-Origin Resource Sharing (CORS) support?", |
| 37 | + "Default": "No", |
| 38 | + "Type": "String", |
| 39 | + "AllowedValues": [ |
| 40 | + "Yes", |
| 41 | + "No" |
| 42 | + ] |
| 43 | + }, |
| 44 | + "CorsOrig": { |
| 45 | + "Description": "This value will be returned by the API in the Access-Control-Allow-Origin header. A star (*) value will support any origin. We recommend specifying a specific origin (e.g. http://example.domain) to restrict cross-site access to your API.", |
| 46 | + "Default": "*", |
| 47 | + "Type": "String" |
| 48 | + }, |
35 | 49 | "LambdaLogRetention": { |
36 | 50 | "Description": "Retain Lambda CloudWatch Logs by days.", |
37 | 51 | "Type": "Number", |
|
63 | 77 | "ParameterGroups" : [ |
64 | 78 | { |
65 | 79 | "Label" : { "default":"Image Handler API Configuration" }, |
66 | | - "Parameters" : [ "OriginS3Bucket", "OriginS3BucketRegion", "LambdaLogRetention" ] |
| 80 | + "Parameters" : [ "OriginS3Bucket", "OriginS3BucketRegion", "EnableCors", "CorsOrig","LambdaLogRetention" ] |
67 | 81 | }, |
68 | 82 | { |
69 | 83 | "Label" : { "default":"Image Handler UI Configuration" }, |
|
73 | 87 | "ParameterLabels" : { |
74 | 88 | "OriginS3Bucket" : { "default" : "Origin S3 Bucket" }, |
75 | 89 | "OriginS3BucketRegion" : { "default" : "Origin S3 Bucket Region" }, |
| 90 | + "EnableCors" : { "default" : "Enable CORS?" }, |
| 91 | + "CorsOrig" : { "default" : "CORS Origin" }, |
76 | 92 | "LambdaLogRetention" : { "default" : "Lambda Log Retention" }, |
77 | 93 | "DeployUI" : { "default" : "Deploy UI?" }, |
78 | 94 | "UIDestPrefix" : { "default" : "UI Prefix" }, |
|
260 | 276 | }, |
261 | 277 | "TC_AWS_REGION":{ "Ref": "OriginS3BucketRegion" }, |
262 | 278 | "TC_AWS_STORAGE_BUCKET":{ "Ref": "OriginS3Bucket" }, |
| 279 | + "ENABLE_CORS":{ "Ref" : "EnableCors"}, |
| 280 | + "CORS_ORIGIN":{ "Ref" : "CorsOrig"}, |
263 | 281 | "SEND_ANONYMOUS_DATA":{ "Fn::FindInMap" : [ "Send", "AnonymousUsage", "Data"]}, |
264 | 282 | "UUID":{"Fn::GetAtt": ["CreateUniqueID", "UUID"]}, |
265 | 283 | "LOG_LEVEL":"INFO" |
|
608 | 626 | } |
609 | 627 | }, |
610 | 628 | "Outputs": { |
611 | | - "CloudFrontURL": { |
612 | | - "Description": "URL for new CloudFront distribution", |
613 | | - "Value": { "Fn::Sub": [ "https://${Domain}", { "Domain": {"Fn::GetAtt": ["ImageHandlerDistribution", "DomainName"]}} ]} |
614 | | - }, |
615 | | - "CloudFrontSampleRequest": { |
616 | | - "Description": "Sample URL calling origin image key through CloudFront", |
617 | | - "Value": { "Fn::Sub": [ "https://${Domain}/fit-in/100x100/image-name.jpg", { "Domain": {"Fn::GetAtt": ["ImageHandlerDistribution", "DomainName"]}} ]} |
618 | | - }, |
619 | 629 | "SolutionUI": { |
620 | 630 | "Description": "If enabled, the URL for the UI.", |
621 | 631 | "Value": { "Fn::Sub": [ |
|
624 | 634 | "Bucket": { "Ref" : "OriginS3Bucket"}, |
625 | 635 | "Prefix": { "Ref" : "UIDestPrefix" } } |
626 | 636 | ] } |
| 637 | + }, |
| 638 | + "CloudFrontURL": { |
| 639 | + "Description": "URL for new CloudFront distribution", |
| 640 | + "Value": { "Fn::Sub": [ "https://${Domain}", { "Domain": {"Fn::GetAtt": ["ImageHandlerDistribution", "DomainName"]}} ]} |
| 641 | + }, |
| 642 | + "CloudFrontSampleRequest": { |
| 643 | + "Description": "Sample URL calling origin image key through CloudFront", |
| 644 | + "Value": { "Fn::Sub": [ "https://${Domain}/fit-in/100x100/image-name.jpg", { "Domain": {"Fn::GetAtt": ["ImageHandlerDistribution", "DomainName"]}} ]} |
| 645 | + }, |
| 646 | + "CorsEnabled": { |
| 647 | + "Description": "Was CORS support enabled?", |
| 648 | + "Value": { "Ref" : "EnableCors"} |
| 649 | + }, |
| 650 | + "CorsOrigin": { |
| 651 | + "Description": "If enabled, allow CORS from this origin.", |
| 652 | + "Value": { "Ref" : "CorsOrig"} |
627 | 653 | } |
628 | 654 | } |
629 | 655 | } |
0 commit comments