d2lcsr_1_s3.yaml
---

D2L Course Site Request - CloudFormation Template (1 of 4)

Deploys D2L Course Site Request S3 buckets.

AWSTemplateFormatVersion: 2010-09-09 Description: D2L Course Site Request (S3)

Parameters

These are the input parameters for this template. All of these parameters must be supplied for this template to be deployed.

Parameters:

BucketNamePrefix is the prefix of the name of the S3 buckets

  • sls-nonprod: edu-arizona-sls-nonprod-d2lcsr
  • sls-prod: edu-arizona-sls-prod-d2lcsr
BucketNamePrefix: Description: Prefix of the name of the S3 buckets (environment type will be appended) Type: String Default: edu-arizona-sls-prod-d2lcsr

HostedDNSZoneName is the named of the DNS hosted zone use for Route53 records

  • sls-nonprod: sls-nonprod-aws.arizona.edu
  • sls-prod: sls-prod-aws.arizona.edu
HostedDNSZoneName: Description: Name of the hosted DNS zone to use for the Route53 records (do NOT enter trailing period) Type: String Default: sls-prod-aws.arizona.edu ### Tags TagService: Description: Name of the service associated with this resource (as listed in the service catalog) Type: String Default: D2L Course Site Request TagEnvironment: Description: Environment type of this resource (dev, tst, rpt, trn, prd) Type: String Default: prd AllowedValues: - dev - tst - rpt - trn - prd TagContactNetID: Description: NetID of the primary technical resource Type: String Default: dbaty TagTicketNumber: Description: Ticket number of the associated Type: String Default: CLOUD-76 TagAccountNumber: Description: Account number associated with the service Type: String Default: Learning Management Systems

Metadata

Metadata is mostly for organizing and presenting Parameters in a better way when using CloudFormation in the AWS Web UI.

Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: Settings Parameters: - BucketNamePrefix - HostedDNSZoneName - Label: default: Tags Parameters: - TagService - TagEnvironment - TagContactNetID - TagTicketNumber - TagAccountNumber ParameterLabels: {}

Resources

Resources:

S3

S3 Bucket for application

S3Bucket: Type: AWS::S3::Bucket Properties: BucketName: !Sub ${BucketNamePrefix}-${TagEnvironment} AccessControl: Private Tags: - Key: Name Value: !Sub ${BucketNamePrefix}-${TagEnvironment} - Key: environment Value: !Ref TagEnvironment - Key: contactnetid Value: !Ref TagContactNetID - Key: ticketnumber Value: !Ref TagTicketNumber - Key: accountnumber Value: !Ref TagAccountNumber - Key: service Value: !Ref TagService

S3 Bucket for maintenance site

S3BucketMaint: Type: AWS::S3::Bucket Properties: BucketName: !Sub ${BucketNamePrefix}-${TagEnvironment}-maintenance AccessControl: PublicRead Tags: - Key: Name Value: !Sub ${BucketNamePrefix}-${TagEnvironment} - Key: environment Value: !Ref TagEnvironment - Key: contactnetid Value: !Ref TagContactNetID - Key: ticketnumber Value: !Ref TagTicketNumber - Key: accountnumber Value: !Ref TagAccountNumber - Key: service Value: !Ref TagService

Outputs

Outputs are values resulting from the CloudFormation stack that can be: 1) Viewed in the AWS cosole under the CloudFormation service. 2) Marked as export to be imported into another stack allowing cross-stack references.

Outputs: AppBucketName: Description: Name of the application S3 bucket Value: !Sub ${BucketNamePrefix}-${TagEnvironment} Export: Name: !Sub ${AWS::StackName}-bucket-app-name AppBucketArn: Description: ARN of the application S3 bucket Value: !Sub arn:aws:s3:::${BucketNamePrefix}-${TagEnvironment} Export: Name: !Sub ${AWS::StackName}-bucket-app-arn AppBucketArnWildCard: Description: ARN of the application S3 bucket with splat wildcard Value: !Sub arn:aws:s3:::${BucketNamePrefix}-${TagEnvironment}/* Export: Name: !Sub ${AWS::StackName}-bucket-app-arn-wildcard MaintBucketName: Description: Name of the maintenance S3 bucket Value: !Sub ${BucketNamePrefix}-${TagEnvironment}-maintenance Export: Name: !Sub ${AWS::StackName}-bucket-maint-name MaintBucketDomain: Description: FQDN of maintenance S3 bucket Value: !GetAtt S3BucketMaint.DomainName Export: Name: !Sub ${AWS::StackName}-bucket-maint-fqdn HostedDNSZoneNameExport: Description: Hosted Route53 DNS zone name Value: !Sub ${HostedDNSZoneName}. Export: Name: !Sub ${AWS::StackName}-hostedzone-name FQDNforCSR: Description: FQDN for the CSR application (hosted zone) Value: !Sub d2l-csr-${TagEnvironment}.${HostedDNSZoneName}. Export: Name: !Sub ${AWS::StackName}-fqdn-for-csr FQDNforCSRNoTrailingDot: Description: FQDN for the CSR application (hosted zone) Value: !Sub d2l-csr-${TagEnvironment}.${HostedDNSZoneName} Export: Name: !Sub ${AWS::StackName}-fqdn-for-csr-no-trailing-dot FQDNforGradeFeed: Description: FQDN for the Grade Feed application (hosted zone) Value: !Sub d2l-grade-${TagEnvironment}.${HostedDNSZoneName}. Export: Name: !Sub ${AWS::StackName}-fqdn-for-grade FQDNforCourseFeed: Description: FQDN for the Course Feed application (hosted zone) Value: !Sub d2l-course-${TagEnvironment}.${HostedDNSZoneName}. Export: Name: !Sub ${AWS::StackName}-fqdn-for-course FQDNforValenceTest: Description: FQDN for the Valence Test Tool application (hosted zone) Value: !Sub d2l-valencetest-${TagEnvironment}.${HostedDNSZoneName}. Export: Name: !Sub ${AWS::StackName}-fqdn-for-valencetest FQDNforSQL: Description: FQDN for the RDS SQL instance (hosted zone alias) Value: !Sub d2lcsr-sql-${TagEnvironment}.${HostedDNSZoneName}. Export: Name: !Sub ${AWS::StackName}-fqdn-for-sql