# README
Wrenderer
Usage
Render
curl -H 'x-api-key: YOUR-API-KEY' "https://wrenderer.example.com/render?url=https://www.target.com"
Cache invalidation
Invalidate single url
curl -X DELETE -H 'x-api-key: YOUR-API-KEY' "https://wrenderer.example.com/render?url=https://www.target.com"
Invalidate whole domain
curl -X DELETE -H 'x-api-key: YOUR-API-KEY' "https://wrenderer.example.com/render?domain=www.target.com"
Note
url passed to url
parameter should be encoded for parsing to work correctly
Build image
docker build -t image-name:tag .
Setup
-
Create ECR with CloudFormation template
setup/aws-lambda/wrenderer-img.yaml
. Given parameterWrendererName
as${Name}
, this will create an ECR repository with name${Name}-img
.- Stack name:
${Name}-img
- Eg.
wrenderer-example-img
- Eg.
- Parameters:
- WrendererName:
${Name}
- Eg.
wrenderer-example
- Eg.
- WrendererName:
- Stack name:
-
Upload Wrenderer image to ECR repository created in step 1.
-
Create wrenderer lambda with api gateway along with iam role permission using CloudFormation template
setup/aws-lambda/wrenderer-main.yaml
.- Stack name:
${Name}
- Eg.
wrenderer-example
- Eg.
- Parameters:
- WrendererName:
${Name}
- Eg.
wrenderer-example
- Eg.
- WrendererImageDigest: ECR image digest
- Eg.
sha256:...
- Eg.
- Other parameters can be left as default or changed as required,
WrendererFunctionMemory
is recommended to be at least set to4096
- WrendererName:
- Stack name:
-
Create certificate for CloudFront (Required only if no certificate exist in
us-east-1
ACM)- Set region to use
us-east-1
- Create certificate with CloudFormation template
setup/aws-lambda/wrenderer-acm.yaml
- Stack name:
${Name}-acm
- Eg.
wrenderer-example-acm
- Eg.
- Parameters:
- WrendererName:
${Name}
- Eg.
wrenderer-example
- Eg.
- WrendererDomain: Domain which wrenderer will be hosted
- Eg.
wrenderer.example.com
- Eg.
- WrendererRootDomain: Root domain of
WrendererDomain
- Eg.
example.com
- Eg.
- WrendererName:
- Stack name:
- CloudFormation will pause for checking dns validation, set DNS record for certificate validation and the progress will continue.
- Set region to use
-
Create CloudFront Distribution with CloudFormation template
setup/aws-lambda/wrenderer-cdn.yaml
(Inus-east-1
region).- Stack name:
${Name}-cdn
- Parameters:
- WrendererName:
${Name}
- Eg.
wrenderer-example
- Eg.
- WrendererApiDomain: Api gateway domain associate with the wrenderer
lambda function. Value be found in the output
WrendererRestApiDomain
of the wrenderer main stack. - WrendererApiStage: Api gateway stage associate with the wrenderer
lambda function. Value can be found in the output
WrendererApiDeploymentStage
of the wrenderer main stack. - WrendererBucketDomain: S3 bucket's domain that stored output cache
contents of the wrenderer. Value can be found in the output
WrendererBucketRegionalDomain
of the wrenderer main stack. - WrendererCertificateArn: ARN of the created certificate for
wrenderer. Value can be found in the output
WrendererCertificateArn
of the wrenderer acm stack. - WrendererDomain: Domain which wrenderer will be hosted. Same as
WrendererDomain
in the wrenderer acm stack.
- WrendererName:
- Stack name:
-
Set DNS record to point domain (
WrendererDomain
) to CloudFront distribution domain. Value can be found in the outputWrendererDistributionDomain
of the wrenderer cdn stack.