Create AWS infrastructure resources for Angular application.
-
Start from
your-project
directory. Change the value ofaws.profile
andangular.hosted_zone
below.cd your-project mkdir infra cd infra # create main.tf cat << EOF > main.tf provider "aws" { region = "us-east-1" profile = "exampleAdmin" } module "angular" { source = "github.com/bagubagu/terraform-aws-angular" hosted_zone = "example.com" # uncomment if you want to force delete s3 buckets on destroy # force_destroy = true } EOF
-
Init and run terraform apply from the
infra
directoryterraform init terraform apply
-
Bob's your uncle.
If hosted_zone is example_com
:
- Setup s3 originbucket
example-com-origin
- Setup s3 cloudformation log bucket
example-com-cloudfront-log
- Add apex and www records to DNS
- Setup cloudfront with alias
example.com
andwww.example.com
- Configure cloudfront to use lambda@edges
- Create ACM certificate
example.com
and*.example.com
- Setup all corresponding IAM users, groups, policies, and roles
- Return everything in
/assets
as is - Request for uri without extension gets redirected to
/index.html
- Redirect errors (4xx and 5xx) to
/index.html
stellar.toml
support. CORS is enable onstellar.toml
. You'll also need to add/.well-known/stellar.toml
intoapps.assets
inangular-cli.json
It's a bug. Please re-run terraform apply
and you should be be fine the second time.
Error: Error applying plan:
1 error(s) occurred:
* module.spa.aws_cloudfront_distribution.origin: 1 error(s) occurred:
* aws_cloudfront_distribution.origin: error creating CloudFront Distribution: InvalidViewerCertificate: The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain.
status code: 400, request id: 68fae058-72bc-11e8-a266-5d955149d452
You can not manually remove them. See lambda-edge-delete-repli
MIT