You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
4.6 KiB

AWSTemplateFormatVersion: 2010-09-09
Metadata:
'AWS::CloudFormation::Designer':
6892b949-4601-47eb-af8d-f584c12bc81b:
size:
width: 60
height: 60
position:
x: 82
'y': 299
z: 0
embeds: []
80500ba5-1749-47bc-8cfa-3e9a0f0d0572:
size:
width: 60
height: 60
position:
x: 200
'y': 300
z: 0
embeds: []
13c58f7b-60f4-4942-8731-d2b12e056e39:
size:
width: 60
height: 60
position:
x: 340
'y': 180
z: 0
embeds: []
isassociatedwith:
- d6f4bd86-a7e4-46c2-abab-2fd987e6a4f1
- 792d4352-869b-4732-a0d2-d4bcc40a6b96
dependson:
- d6f4bd86-a7e4-46c2-abab-2fd987e6a4f1
- 13c58f7b-60f4-4942-8731-d2b12e056e39
792d4352-869b-4732-a0d2-d4bcc40a6b96:
size:
width: 60
height: 60
position:
x: 460
'y': 180
z: 0
embeds: []
dependson:
- 13c58f7b-60f4-4942-8731-d2b12e056e39
3cf5efd5-85be-4593-b08b-bc3d4a6091b4:
size:
width: 60
height: 60
position:
x: 340
'y': 350
z: 0
embeds: []
161bd476-b869-4c2e-968b-05cd0b73052f:
size:
width: 60
height: 60
position:
x: 80
'y': 220
z: 0
embeds: []
isassociatedwith:
- 80500ba5-1749-47bc-8cfa-3e9a0f0d0572
6a40fbab-730f-4fd4-9647-36cf479e94c2:
size:
width: 60
height: 60
position:
x: 340
'y': 60
z: 0
embeds: []
isassociatedwith:
- 13c58f7b-60f4-4942-8731-d2b12e056e39
Resources:
URL:
Type: 'AWS::Lambda::Url'
Properties:
AuthType: NONE
TargetFunctionArn: !GetAtt
- Server
- Arn
Metadata:
'AWS::CloudFormation::Designer':
id: 6892b949-4601-47eb-af8d-f584c12bc81b
DependsOn:
- Server
Server:
Type: 'AWS::Lambda::Function'
Properties:
FunctionName: Server
Handler: index.handler
Runtime: nodejs16.x
Code:
S3Bucket: '${bucketname}'
S3Key: index.zip
Role: !GetAtt
- SiteRole
- Arn
MemorySize: 512
Metadata:
'AWS::CloudFormation::Designer':
id: 80500ba5-1749-47bc-8cfa-3e9a0f0d0572
DependsOn:
- SiteRole
SiteRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
Action: 'sts:AssumeRole'
ManagedPolicyArns:
- 'arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess'
RoleName: SiteRole
Metadata:
'AWS::CloudFormation::Designer':
id: 13c58f7b-60f4-4942-8731-d2b12e056e39
ExecPolicy:
Type: 'AWS::IAM::Policy'
Properties:
PolicyName: LambdaExcecutionPolicy
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- 'logs:CreateLogGroup'
- 'logs:CreateLogStream'
- 'logs:PutLogEvents'
Resource: '*'
Roles:
- !Ref SiteRole
Metadata:
'AWS::CloudFormation::Designer':
id: 792d4352-869b-4732-a0d2-d4bcc40a6b96
DependsOn:
- SiteRole
MusicTable:
Type: 'AWS::DynamoDB::Table'
Properties:
KeySchema:
- AttributeName: id
KeyType: HASH
AttributeDefinitions:
- AttributeName: id
AttributeType: S
BillingMode: PAY_PER_REQUEST
TableName: MusicTable
Metadata:
'AWS::CloudFormation::Designer':
id: 3cf5efd5-85be-4593-b08b-bc3d4a6091b4
Permission:
Type: 'AWS::Lambda::Permission'
Properties:
Action: 'lambda:invokeFunctionUrl'
FunctionUrlAuthType: NONE
FunctionName: !Ref Server
Principal: '*'
Metadata:
'AWS::CloudFormation::Designer':
id: 161bd476-b869-4c2e-968b-05cd0b73052f
MusicBucketAllAccess:
Type: 'AWS::IAM::Policy'
Properties:
PolicyName: MusicBucketAllAccess
PolicyDocument:
Version: 2012-10-17
Statement:
- Sid: SIDALLOWALLS3
Effect: Allow
Action:
- 's3:*'
Resource: '*'
- Sid: SIDCODEBUCKET
Effect: Allow
Action: 's3:*'
Resource: 'arn:aws:s3:::group7-code-bucket-73h3fdsa'
Roles:
- !Ref SiteRole
Metadata:
'AWS::CloudFormation::Designer':
id: 6a40fbab-730f-4fd4-9647-36cf479e94c2