@glicogh/healthcare-cdk 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +42 -0
- package/README.md +31 -2
- package/dist/lib/microservice-infra-auth.d.ts +5 -0
- package/dist/lib/microservice-infra-auth.js +81 -0
- package/dist/lib/microservice-laravel-based.js +5 -3
- package/dist/lib/microservice-mysql.js +5 -3
- package/dist/lib/microservice-network.js +1 -24
- package/dist/lib/microservice-notification-service.js +3 -1
- package/dist/lib/microservice-portal.js +3 -1
- package/dist/lib/microservice-redis.js +3 -1
- package/dist/scripts/post-deployment-api-gateway.sh +3 -3
- package/dist/scripts/post-deployment-before-all.sh +4 -4
- package/dist/scripts/post-deployment-clone-repo.sh +1 -1
- package/dist/scripts/post-deployment-laravel-based.sh +5 -4
- package/dist/scripts/post-deployment-mysql.sh +1 -1
- package/dist/scripts/post-deployment-notification-service.sh +27 -4
- package/dist/scripts/post-deployment-portal.sh +3 -3
- package/dist/scripts/post-deployment-redis.sh +3 -3
- package/dist/util/constants.d.ts +3 -1
- package/dist/util/constants.js +3 -1
- package/dist/util/getEc2UserData.js +3 -3
- package/dist/util/getInstanceStorage.d.ts +5 -0
- package/dist/util/getInstanceStorage.js +37 -0
- package/dist/util/initCdkStack.js +5 -1
- package/package.json +1 -1
- package/scripts/post-deployment-api-gateway.sh +3 -3
- package/scripts/post-deployment-before-all.sh +4 -4
- package/scripts/post-deployment-clone-repo.sh +1 -1
- package/scripts/post-deployment-laravel-based.sh +5 -4
- package/scripts/post-deployment-mysql.sh +1 -1
- package/scripts/post-deployment-notification-service.sh +27 -4
- package/scripts/post-deployment-portal.sh +3 -3
- package/scripts/post-deployment-redis.sh +3 -3
package/.env.example
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
APP_NAME=HealthcareMicroservice
|
|
2
|
+
ENV_NAME=uat
|
|
3
|
+
SERVICE_NAME=
|
|
4
|
+
COMPANY_NAME=glico
|
|
5
|
+
AWS_REGION=eu-west-2
|
|
6
|
+
AWS_ACCOUNT_ID=825765383017
|
|
7
|
+
|
|
8
|
+
EC2_REDIS_INSTANCE_TYPE=t4g.nano
|
|
9
|
+
EC2_REDIS_INSTANCE_STORAGE_SIZE=
|
|
10
|
+
EC2_REDIS_INSTANCE_STORAGE_TYPE=gp3
|
|
11
|
+
|
|
12
|
+
EC2_MYSQL_INSTANCE_TYPE=t4g.nano
|
|
13
|
+
EC2_MYSQL_INSTANCE_STORAGE_SIZE=10
|
|
14
|
+
EC2_MYSQL_INSTANCE_STORAGE_TYPE=gp3
|
|
15
|
+
|
|
16
|
+
EC2_API_GATEWAY_INSTANCE_TYPE=t4g.nano
|
|
17
|
+
EC2_API_GATEWAY_INSTANCE_STORAGE_SIZE=
|
|
18
|
+
EC2_API_GATEWAY_INSTANCE_STORAGE_TYPE=gp3
|
|
19
|
+
|
|
20
|
+
EC2_NOTIFICATION_SERVICE_INSTANCE_TYPE=
|
|
21
|
+
EC2_NOTIFICATION_SERVICE_INSTANCE_STORAGE_SIZE=
|
|
22
|
+
EC2_NOTIFICATION_SERVICE_INSTANCE_STORAGE_TYPE=gp3
|
|
23
|
+
|
|
24
|
+
EC2_ACCOUNT_SERVICE_INSTANCE_TYPE=
|
|
25
|
+
EC2_ACCOUNT_SERVICE_INSTANCE_STORAGE_SIZE=
|
|
26
|
+
EC2_ACCOUNT_SERVICE_INSTANCE_STORAGE_TYPE=gp3
|
|
27
|
+
|
|
28
|
+
EC2_PLAN_SERVICE_INSTANCE_TYPE=
|
|
29
|
+
EC2_PLAN_SERVICE_INSTANCE_STORAGE_SIZE=
|
|
30
|
+
EC2_PLAN_SERVICE_INSTANCE_STORAGE_TYPE=gp3
|
|
31
|
+
|
|
32
|
+
EC2_POLICY_SERVICE_INSTANCE_TYPE=
|
|
33
|
+
EC2_POLICY_SERVICE_INSTANCE_STORAGE_SIZE=
|
|
34
|
+
EC2_POLICY_SERVICE_INSTANCE_STORAGE_TYPE=gp3
|
|
35
|
+
|
|
36
|
+
EC2_CLAIMS_SERVICE_INSTANCE_TYPE=
|
|
37
|
+
EC2_CLAIMS_SERVICE_INSTANCE_STORAGE_SIZE=
|
|
38
|
+
EC2_CLAIMS_SERVICE_INSTANCE_STORAGE_TYPE=gp3
|
|
39
|
+
|
|
40
|
+
EC2_REPORTING_SERVICE_INSTANCE_TYPE=
|
|
41
|
+
EC2_REPORTING_SERVICE_INSTANCE_STORAGE_SIZE=
|
|
42
|
+
EC2_REPORTING_SERVICE_INSTANCE_STORAGE_TYPE=gp3
|
package/README.md
CHANGED
|
@@ -87,7 +87,7 @@ MicroserviceMySQL
|
|
|
87
87
|
The following stack are meant to be deployed once and shared across the microservices. These would typically be deployed from a local machine as opposed to within a CI/CD pipeline
|
|
88
88
|
|
|
89
89
|
- MicroserviceNetwork
|
|
90
|
-
-
|
|
90
|
+
- MicroserviceInfraAuth
|
|
91
91
|
- MicroserviceRedis
|
|
92
92
|
- MicroserviceMySQL
|
|
93
93
|
|
|
@@ -99,8 +99,9 @@ cdk --profile glicogh-uat --context env=uat deploy MicroserviceNetwork
|
|
|
99
99
|
|
|
100
100
|
### Pipeline-based stack
|
|
101
101
|
|
|
102
|
-
The following stack on the other hand, are meant to deploy a new set of resources on each CDK deployment
|
|
102
|
+
The following stack on the other hand, are meant to deploy a new set of resources on each CDK deployment. These can also be thought of as the stack that have a GIT repository.
|
|
103
103
|
|
|
104
|
+
- MicroserviceApiGateway
|
|
104
105
|
- MicroserviceLaravelBased
|
|
105
106
|
- MicroserviceNotificationService
|
|
106
107
|
|
|
@@ -110,6 +111,34 @@ These are typically microservice stack and will be triggered each time code is m
|
|
|
110
111
|
cdk --profile glicogh-uat --context env=uat --context version=1.0.1 --context service=account deploy
|
|
111
112
|
```
|
|
112
113
|
|
|
114
|
+
These stack can also be versioned.
|
|
115
|
+
|
|
113
116
|
> The service option can also be passed in a .env
|
|
114
117
|
|
|
115
118
|
The above command is what you would run in the CDK CLI. However, you would typically be running the deployment in a CI/CD pipeline such as Github Actions, in which case the command may be different. You would have to refer to the CI/CD platform's documentation for how to achieve this.
|
|
119
|
+
|
|
120
|
+
#### Using as dependency
|
|
121
|
+
|
|
122
|
+
Follow these steps to setup CDK in a repository.
|
|
123
|
+
|
|
124
|
+
> This assumes you are in the root of the project
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
# delete CDK folder if it already exists
|
|
128
|
+
rm -rf .infra/cdk
|
|
129
|
+
# create CDK folder
|
|
130
|
+
mkdir -p .infra/cdk
|
|
131
|
+
# change working directory to the CDK directory
|
|
132
|
+
cd .infra/cdk
|
|
133
|
+
# initialize CDK
|
|
134
|
+
cdk init app --language typescript
|
|
135
|
+
# install package as a dependency
|
|
136
|
+
npm i @glicogh/healthcare-cdk
|
|
137
|
+
# copy env
|
|
138
|
+
cp node_modules/@glicogh/healthcare-cdk/.env.example .env.uat
|
|
139
|
+
cp node_modules/@glicogh/healthcare-cdk/.env.example .env.prod
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Now you can edit the .env files for each of the enviroments that apply to your project. The content of `.env.example` has variables that apply to all supported services/projects, so you may edit the ones that apply to your target service/project. Also, the copy commands only target the `uat` and `prod` environements, but you may copy it for additional environments if needed.
|
|
143
|
+
|
|
144
|
+
> For the laravel-based projects, the [package](https://github.com/glicogh/healthcare-laravel-package) is able to perform all the steps/commands for you by running `php artisan glico:healthcare:microservice:cdk`
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MicroserviceInfraAuth = void 0;
|
|
4
|
+
const cdk = require("aws-cdk-lib");
|
|
5
|
+
const initBuildConfig_1 = require("../util/initBuildConfig");
|
|
6
|
+
const constants_1 = require("../util/constants");
|
|
7
|
+
class MicroserviceInfraAuth extends cdk.Stack {
|
|
8
|
+
constructor(scope, id, props) {
|
|
9
|
+
super(scope, id, props);
|
|
10
|
+
if (!initBuildConfig_1.buildConfig) {
|
|
11
|
+
throw new Error('BuildConfig not set');
|
|
12
|
+
}
|
|
13
|
+
// create base role for microservice ec2 instances
|
|
14
|
+
new cdk.aws_iam.Role(this, (0, constants_1.getConstant)('baseRoleName'), {
|
|
15
|
+
roleName: (0, constants_1.getConstant)('baseRoleName'),
|
|
16
|
+
assumedBy: new cdk.aws_iam.ServicePrincipal('ec2.amazonaws.com'),
|
|
17
|
+
managedPolicies: [],
|
|
18
|
+
inlinePolicies: {
|
|
19
|
+
microserviceEc2InstanceRolePolicy: new cdk.aws_iam.PolicyDocument({
|
|
20
|
+
statements: [
|
|
21
|
+
new cdk.aws_iam.PolicyStatement({
|
|
22
|
+
sid: 'AllowInstanceToReadEnvFromS3',
|
|
23
|
+
resources: [`arn:aws:s3:::${(0, constants_1.getConstant)('publicBucketName')}/*`],
|
|
24
|
+
actions: ['s3:*'],
|
|
25
|
+
effect: cdk.aws_iam.Effect.ALLOW,
|
|
26
|
+
}),
|
|
27
|
+
new cdk.aws_iam.PolicyStatement({
|
|
28
|
+
sid: 'AllowInstanceToReadSSMParameters',
|
|
29
|
+
resources: [`arn:aws:ssm:${initBuildConfig_1.buildConfig.aws.region}:${initBuildConfig_1.buildConfig.aws.account}:parameter/${initBuildConfig_1.buildConfig.envName}/microservices/*`],
|
|
30
|
+
actions: ['ssm:GetParameter*'],
|
|
31
|
+
}),
|
|
32
|
+
],
|
|
33
|
+
}),
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
// create role/permissions for Github to invoke CDK
|
|
37
|
+
const githubProvider = new cdk.aws_iam.OpenIdConnectProvider(this, 'GithubOpenIdProvider', {
|
|
38
|
+
url: 'https://token.actions.githubusercontent.com',
|
|
39
|
+
clientIds: ['sts.amazonaws.com'],
|
|
40
|
+
});
|
|
41
|
+
const githubPrincipal = new cdk.aws_iam.OpenIdConnectPrincipal(githubProvider).withConditions({
|
|
42
|
+
StringLike: {
|
|
43
|
+
'token.actions.githubusercontent.com:sub': 'repo:glicogh/*',
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
new cdk.aws_iam.Role(this, 'GithubCdkDeploymentRole', {
|
|
47
|
+
assumedBy: githubPrincipal,
|
|
48
|
+
description: 'Role assumed by Github for deploying with CDK',
|
|
49
|
+
roleName: 'github-cdk-deployment-role',
|
|
50
|
+
maxSessionDuration: cdk.Duration.hours(1),
|
|
51
|
+
inlinePolicies: {
|
|
52
|
+
GithubCdkDeploymentPolicy: new cdk.aws_iam.PolicyDocument({
|
|
53
|
+
statements: [
|
|
54
|
+
new cdk.aws_iam.PolicyStatement({
|
|
55
|
+
sid: 'AssumeExistingCdkRoles',
|
|
56
|
+
effect: cdk.aws_iam.Effect.ALLOW,
|
|
57
|
+
actions: ['sts:AssumeRole'],
|
|
58
|
+
resources: [`arn:aws:iam::${this.account}:role/cdk-*`],
|
|
59
|
+
}),
|
|
60
|
+
// new cdk.aws_iam.PolicyStatement({
|
|
61
|
+
// sid: 'AllowAccessToExistingCfnCdkToolkit',
|
|
62
|
+
// effect: cdk.aws_iam.Effect.ALLOW,
|
|
63
|
+
// actions: [
|
|
64
|
+
// 'cloudformation:DescribeStacks',
|
|
65
|
+
// 'cloudformation:GetTemplate',
|
|
66
|
+
// 'cloudformation:DeleteChangeSet',
|
|
67
|
+
// 'cloudformation:CreateChangeSet',
|
|
68
|
+
// 'cloudformation:DescribeChangeSet',
|
|
69
|
+
// 'cloudformation:ExecuteChangeSet',
|
|
70
|
+
// 'cloudformation:DescribeStackEvents',
|
|
71
|
+
// ],
|
|
72
|
+
// resources: [`arn:aws:cloudformation:${this.region}:${this.account}:stack/CDKToolkit/*`],
|
|
73
|
+
// }),
|
|
74
|
+
],
|
|
75
|
+
}),
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.MicroserviceInfraAuth = MicroserviceInfraAuth;
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLWluZnJhLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWljcm9zZXJ2aWNlLWluZnJhLWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLDZEQUFzRDtBQUN0RCxpREFBZ0Q7QUFFaEQsTUFBYSxxQkFBc0IsU0FBUSxHQUFHLENBQUMsS0FBSztJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyw2QkFBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxrREFBa0Q7UUFDbEQsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGNBQWMsQ0FBVyxFQUFFO1lBQ2hFLFFBQVEsRUFBRSxJQUFBLHVCQUFXLEVBQUMsY0FBYyxDQUFXO1lBQy9DLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7WUFDaEUsZUFBZSxFQUFFLEVBQUU7WUFDbkIsY0FBYyxFQUFFO2dCQUNkLGlDQUFpQyxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7b0JBQ2hFLFVBQVUsRUFBRTt3QkFDVixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDOzRCQUM5QixHQUFHLEVBQUUsOEJBQThCOzRCQUNuQyxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsSUFBQSx1QkFBVyxFQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQzs0QkFDaEUsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDOzRCQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSzt5QkFDakMsQ0FBQzt3QkFDRixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDOzRCQUM5QixHQUFHLEVBQUUsa0NBQWtDOzRCQUN2QyxTQUFTLEVBQUUsQ0FBQyxlQUFlLDZCQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSw2QkFBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLGNBQWMsNkJBQVcsQ0FBQyxPQUFPLGtCQUFrQixDQUFDOzRCQUNoSSxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzt5QkFDL0IsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxtREFBbUQ7UUFDbkQsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUN6RixHQUFHLEVBQUUsNkNBQTZDO1lBQ2xELFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1NBQ2pDLENBQUMsQ0FBQztRQUVILE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDNUYsVUFBVSxFQUFFO2dCQUNWLHlDQUF5QyxFQUFFLGdCQUFnQjthQUM1RDtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFO1lBQ3BELFNBQVMsRUFBRSxlQUFlO1lBQzFCLFdBQVcsRUFBRSwrQ0FBK0M7WUFDNUQsUUFBUSxFQUFFLDRCQUE0QjtZQUN0QyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekMsY0FBYyxFQUFFO2dCQUNkLHlCQUF5QixFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7b0JBQ3hELFVBQVUsRUFBRTt3QkFDVixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDOzRCQUM5QixHQUFHLEVBQUUsd0JBQXdCOzRCQUM3QixNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSzs0QkFDaEMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7NEJBQzNCLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixJQUFJLENBQUMsT0FBTyxhQUFhLENBQUM7eUJBQ3ZELENBQUM7d0JBQ0Ysb0NBQW9DO3dCQUNwQywrQ0FBK0M7d0JBQy9DLHNDQUFzQzt3QkFDdEMsZUFBZTt3QkFDZix1Q0FBdUM7d0JBQ3ZDLG9DQUFvQzt3QkFDcEMsd0NBQXdDO3dCQUN4Qyx3Q0FBd0M7d0JBQ3hDLDBDQUEwQzt3QkFDMUMseUNBQXlDO3dCQUN6Qyw0Q0FBNEM7d0JBQzVDLE9BQU87d0JBQ1AsNkZBQTZGO3dCQUM3RixNQUFNO3FCQUNQO2lCQUNGLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTdFRCxzREE2RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBidWlsZENvbmZpZyB9IGZyb20gJy4uL3V0aWwvaW5pdEJ1aWxkQ29uZmlnJztcbmltcG9ydCB7IGdldENvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgTWljcm9zZXJ2aWNlSW5mcmFBdXRoIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIGJhc2Ugcm9sZSBmb3IgbWljcm9zZXJ2aWNlIGVjMiBpbnN0YW5jZXNcbiAgICBuZXcgY2RrLmF3c19pYW0uUm9sZSh0aGlzLCBnZXRDb25zdGFudCgnYmFzZVJvbGVOYW1lJykgYXMgc3RyaW5nLCB7XG4gICAgICByb2xlTmFtZTogZ2V0Q29uc3RhbnQoJ2Jhc2VSb2xlTmFtZScpIGFzIHN0cmluZyxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGNkay5hd3NfaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2VjMi5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtdLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgbWljcm9zZXJ2aWNlRWMySW5zdGFuY2VSb2xlUG9saWN5OiBuZXcgY2RrLmF3c19pYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBjZGsuYXdzX2lhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0luc3RhbmNlVG9SZWFkRW52RnJvbVMzJyxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6czM6Ojoke2dldENvbnN0YW50KCdwdWJsaWNCdWNrZXROYW1lJyl9LypgXSxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydzMzoqJ10sXG4gICAgICAgICAgICAgIGVmZmVjdDogY2RrLmF3c19pYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgY2RrLmF3c19pYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dJbnN0YW5jZVRvUmVhZFNTTVBhcmFtZXRlcnMnLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czpzc206JHtidWlsZENvbmZpZy5hd3MucmVnaW9ufToke2J1aWxkQ29uZmlnLmF3cy5hY2NvdW50fTpwYXJhbWV0ZXIvJHtidWlsZENvbmZpZy5lbnZOYW1lfS9taWNyb3NlcnZpY2VzLypgXSxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydzc206R2V0UGFyYW1ldGVyKiddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gY3JlYXRlIHJvbGUvcGVybWlzc2lvbnMgZm9yIEdpdGh1YiB0byBpbnZva2UgQ0RLXG4gICAgY29uc3QgZ2l0aHViUHJvdmlkZXIgPSBuZXcgY2RrLmF3c19pYW0uT3BlbklkQ29ubmVjdFByb3ZpZGVyKHRoaXMsICdHaXRodWJPcGVuSWRQcm92aWRlcicsIHtcbiAgICAgIHVybDogJ2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20nLFxuICAgICAgY2xpZW50SWRzOiBbJ3N0cy5hbWF6b25hd3MuY29tJ10sXG4gICAgfSk7XG5cbiAgICBjb25zdCBnaXRodWJQcmluY2lwYWwgPSBuZXcgY2RrLmF3c19pYW0uT3BlbklkQ29ubmVjdFByaW5jaXBhbChnaXRodWJQcm92aWRlcikud2l0aENvbmRpdGlvbnMoe1xuICAgICAgU3RyaW5nTGlrZToge1xuICAgICAgICAndG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb206c3ViJzogJ3JlcG86Z2xpY29naC8qJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgY2RrLmF3c19pYW0uUm9sZSh0aGlzLCAnR2l0aHViQ2RrRGVwbG95bWVudFJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IGdpdGh1YlByaW5jaXBhbCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnUm9sZSBhc3N1bWVkIGJ5IEdpdGh1YiBmb3IgZGVwbG95aW5nIHdpdGggQ0RLJyxcbiAgICAgIHJvbGVOYW1lOiAnZ2l0aHViLWNkay1kZXBsb3ltZW50LXJvbGUnLFxuICAgICAgbWF4U2Vzc2lvbkR1cmF0aW9uOiBjZGsuRHVyYXRpb24uaG91cnMoMSksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBHaXRodWJDZGtEZXBsb3ltZW50UG9saWN5OiBuZXcgY2RrLmF3c19pYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBjZGsuYXdzX2lhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBc3N1bWVFeGlzdGluZ0Nka1JvbGVzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBjZGsuYXdzX2lhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnc3RzOkFzc3VtZVJvbGUnXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6aWFtOjoke3RoaXMuYWNjb3VudH06cm9sZS9jZGstKmBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAvLyBuZXcgY2RrLmF3c19pYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIC8vICAgc2lkOiAnQWxsb3dBY2Nlc3NUb0V4aXN0aW5nQ2ZuQ2RrVG9vbGtpdCcsXG4gICAgICAgICAgICAvLyAgIGVmZmVjdDogY2RrLmF3c19pYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgLy8gICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAvLyAgICAgJ2Nsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tzJyxcbiAgICAgICAgICAgIC8vICAgICAnY2xvdWRmb3JtYXRpb246R2V0VGVtcGxhdGUnLFxuICAgICAgICAgICAgLy8gICAgICdjbG91ZGZvcm1hdGlvbjpEZWxldGVDaGFuZ2VTZXQnLFxuICAgICAgICAgICAgLy8gICAgICdjbG91ZGZvcm1hdGlvbjpDcmVhdGVDaGFuZ2VTZXQnLFxuICAgICAgICAgICAgLy8gICAgICdjbG91ZGZvcm1hdGlvbjpEZXNjcmliZUNoYW5nZVNldCcsXG4gICAgICAgICAgICAvLyAgICAgJ2Nsb3VkZm9ybWF0aW9uOkV4ZWN1dGVDaGFuZ2VTZXQnLFxuICAgICAgICAgICAgLy8gICAgICdjbG91ZGZvcm1hdGlvbjpEZXNjcmliZVN0YWNrRXZlbnRzJyxcbiAgICAgICAgICAgIC8vICAgXSxcbiAgICAgICAgICAgIC8vICAgcmVzb3VyY2VzOiBbYGFybjphd3M6Y2xvdWRmb3JtYXRpb246JHt0aGlzLnJlZ2lvbn06JHt0aGlzLmFjY291bnR9OnN0YWNrL0NES1Rvb2xraXQvKmBdLFxuICAgICAgICAgICAgLy8gfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -6,6 +6,7 @@ const constants_1 = require("../util/constants");
|
|
|
6
6
|
const initBuildConfig_1 = require("../util/initBuildConfig");
|
|
7
7
|
const getInstanceType_1 = require("../util/getInstanceType");
|
|
8
8
|
const getEc2UserData_1 = require("../util/getEc2UserData");
|
|
9
|
+
const getInstanceStorage_1 = require("../util/getInstanceStorage");
|
|
9
10
|
class MicroserviceLaravelBased extends cdk.Stack {
|
|
10
11
|
constructor(scope, id, props) {
|
|
11
12
|
super(scope, id, props);
|
|
@@ -27,14 +28,15 @@ class MicroserviceLaravelBased extends cdk.Stack {
|
|
|
27
28
|
associatePublicIpAddress: false,
|
|
28
29
|
userData: cdk.aws_ec2.UserData.custom((0, getEc2UserData_1.getEc2UserData)()),
|
|
29
30
|
role: cdk.aws_iam.Role.fromRoleName(this, 'BaseRoleLookup', (0, constants_1.getConstant)('baseRoleName')),
|
|
31
|
+
blockDevices: (0, getInstanceStorage_1.getInstanceStorage)(initBuildConfig_1.buildConfig.serviceName),
|
|
30
32
|
});
|
|
31
|
-
new cdk.CfnOutput(this,
|
|
33
|
+
new cdk.CfnOutput(this, `internal-domain`, {
|
|
32
34
|
value: instance.instancePrivateDnsName,
|
|
33
35
|
});
|
|
34
|
-
new cdk.CfnOutput(this,
|
|
36
|
+
new cdk.CfnOutput(this, `internal-ip`, {
|
|
35
37
|
value: instance.instancePrivateIp,
|
|
36
38
|
});
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
exports.MicroserviceLaravelBased = MicroserviceLaravelBased;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLWxhcmF2ZWwtYmFzZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWljcm9zZXJ2aWNlLWxhcmF2ZWwtYmFzZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLGlEQUFnRTtBQUNoRSw2REFBc0Q7QUFDdEQsNkRBQTBEO0FBQzFELDJEQUF3RDtBQUN4RCxtRUFBZ0U7QUFFaEUsTUFBYSx3QkFBeUIsU0FBUSxHQUFHLENBQUMsS0FBSztJQUNyRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyw2QkFBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN4RCxPQUFPLEVBQUUsSUFBQSwwQkFBYyxFQUFDLE9BQU8sQ0FBQztTQUNqQyxDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBQSwwQkFBYyxFQUFDLDZCQUE2QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFeEksTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyw2QkFBVyxDQUFDLFdBQVcsWUFBWSw2QkFBVyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9HLEdBQUc7WUFDSCxhQUFhLEVBQUUsUUFBUTtZQUN2QixZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFBLGlDQUFlLEVBQUMsNkJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRixZQUFZLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxDQUFDLDZCQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsdUJBQVcsRUFBQyxpQkFBaUIsQ0FBVzthQUNuRSxDQUFDO1lBQ0YsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFO1lBQ3RFLHdCQUF3QixFQUFFLEtBQUs7WUFDL0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFBLCtCQUFjLEdBQUUsQ0FBQztZQUN2RCxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFBLHVCQUFXLEVBQUMsY0FBYyxDQUFXLENBQUM7WUFDbEcsWUFBWSxFQUFFLElBQUEsdUNBQWtCLEVBQUMsNkJBQVcsQ0FBQyxXQUFXLENBQUM7U0FDMUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN6QyxLQUFLLEVBQUUsUUFBUSxDQUFDLHNCQUFzQjtTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUNyQyxLQUFLLEVBQUUsUUFBUSxDQUFDLGlCQUFpQjtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFuQ0QsNERBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZVR5cGUgfSBmcm9tICcuLi91dGlsL2dldEluc3RhbmNlVHlwZSc7XG5pbXBvcnQgeyBnZXRFYzJVc2VyRGF0YSB9IGZyb20gJy4uL3V0aWwvZ2V0RWMyVXNlckRhdGEnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VTdG9yYWdlIH0gZnJvbSAnLi4vdXRpbC9nZXRJbnN0YW5jZVN0b3JhZ2UnO1xuXG5leHBvcnQgY2xhc3MgTWljcm9zZXJ2aWNlTGFyYXZlbEJhc2VkIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgdnBjID0gY2RrLmF3c19lYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1ZQQ0xvb2t1cCcsIHtcbiAgICAgIHZwY05hbWU6IGdldEVudkNvbnN0YW50KCd2cGNJZCcpLFxuICAgIH0pO1xuICAgIGNvbnN0IHNlY0dyb3VwID0gY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cC5mcm9tTG9va3VwQnlOYW1lKHRoaXMsICdTZWNHcm91cExvb2t1cCcsIGdldEVudkNvbnN0YW50KCdsYXJhdmVsQmFzZWRTZWN1cml0eUdyb3VwSWQnKSwgdnBjKTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlKHRoaXMsIGBlYzItJHtidWlsZENvbmZpZy5zZXJ2aWNlTmFtZX0tc2VydmljZS0ke2J1aWxkQ29uZmlnLmVudk5hbWV9YCwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cDogc2VjR3JvdXAsXG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZVR5cGUoZ2V0SW5zdGFuY2VUeXBlKGJ1aWxkQ29uZmlnLnNlcnZpY2VOYW1lKSksXG4gICAgICBtYWNoaW5lSW1hZ2U6IGNkay5hd3NfZWMyLk1hY2hpbmVJbWFnZS5nZW5lcmljTGludXgoe1xuICAgICAgICBbYnVpbGRDb25maWcuYXdzLnJlZ2lvbl06IGdldENvbnN0YW50KCdkZWZhdWx0SW1hZ2VBbWknKSBhcyBzdHJpbmcsXG4gICAgICB9KSxcbiAgICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogY2RrLmF3c19lYzIuU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTIH0sXG4gICAgICBhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3M6IGZhbHNlLFxuICAgICAgdXNlckRhdGE6IGNkay5hd3NfZWMyLlVzZXJEYXRhLmN1c3RvbShnZXRFYzJVc2VyRGF0YSgpKSxcbiAgICAgIHJvbGU6IGNkay5hd3NfaWFtLlJvbGUuZnJvbVJvbGVOYW1lKHRoaXMsICdCYXNlUm9sZUxvb2t1cCcsIGdldENvbnN0YW50KCdiYXNlUm9sZU5hbWUnKSBhcyBzdHJpbmcpLFxuICAgICAgYmxvY2tEZXZpY2VzOiBnZXRJbnN0YW5jZVN0b3JhZ2UoYnVpbGRDb25maWcuc2VydmljZU5hbWUpLFxuICAgIH0pO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgYGludGVybmFsLWRvbWFpbmAsIHtcbiAgICAgIHZhbHVlOiBpbnN0YW5jZS5pbnN0YW5jZVByaXZhdGVEbnNOYW1lLFxuICAgIH0pO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgYGludGVybmFsLWlwYCwge1xuICAgICAgdmFsdWU6IGluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZUlwLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -6,6 +6,7 @@ const constants_1 = require("../util/constants");
|
|
|
6
6
|
const initBuildConfig_1 = require("../util/initBuildConfig");
|
|
7
7
|
const getInstanceType_1 = require("../util/getInstanceType");
|
|
8
8
|
const getEc2UserData_1 = require("../util/getEc2UserData");
|
|
9
|
+
const getInstanceStorage_1 = require("../util/getInstanceStorage");
|
|
9
10
|
class MicroserviceMySql extends cdk.Stack {
|
|
10
11
|
constructor(scope, id, props) {
|
|
11
12
|
super(scope, id, props);
|
|
@@ -27,14 +28,15 @@ class MicroserviceMySql extends cdk.Stack {
|
|
|
27
28
|
associatePublicIpAddress: false,
|
|
28
29
|
userData: cdk.aws_ec2.UserData.custom((0, getEc2UserData_1.getEc2UserData)('mysql')),
|
|
29
30
|
role: cdk.aws_iam.Role.fromRoleName(this, 'BaseRoleLookup', (0, constants_1.getConstant)('baseRoleName')),
|
|
31
|
+
blockDevices: (0, getInstanceStorage_1.getInstanceStorage)('mysql'),
|
|
30
32
|
});
|
|
31
|
-
new cdk.CfnOutput(this, '
|
|
33
|
+
new cdk.CfnOutput(this, 'internal-domain', {
|
|
32
34
|
value: instance.instancePrivateDnsName,
|
|
33
35
|
});
|
|
34
|
-
new cdk.CfnOutput(this, '
|
|
36
|
+
new cdk.CfnOutput(this, 'internal-ip', {
|
|
35
37
|
value: instance.instancePrivateIp,
|
|
36
38
|
});
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
exports.MicroserviceMySql = MicroserviceMySql;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLW15c3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL21pY3Jvc2VydmljZS1teXNxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsaURBQWdFO0FBQ2hFLDZEQUFzRDtBQUN0RCw2REFBMEQ7QUFDMUQsMkRBQXdEO0FBQ3hELG1FQUFnRTtBQUVoRSxNQUFhLGlCQUFrQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQzlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLDZCQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3hELE9BQU8sRUFBRSxJQUFBLDBCQUFjLEVBQUMsT0FBTyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFBLDBCQUFjLEVBQUMsc0JBQXNCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVqSSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxhQUFhLDZCQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEYsR0FBRztZQUNILGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUEsaUNBQWUsRUFBQyxPQUFPLENBQUMsQ0FBQztZQUNwRSxZQUFZLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxDQUFDLDZCQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsdUJBQVcsRUFBQyxpQkFBaUIsQ0FBVzthQUNuRSxDQUFDO1lBQ0YsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFO1lBQ3RFLHdCQUF3QixFQUFFLEtBQUs7WUFDL0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFBLCtCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGNBQWMsQ0FBVyxDQUFDO1lBQ2xHLFlBQVksRUFBRSxJQUFBLHVDQUFrQixFQUFDLE9BQU8sQ0FBQztTQUMxQyxDQUFDLENBQUM7UUFFSCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3pDLEtBQUssRUFBRSxRQUFRLENBQUMsc0JBQXNCO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3JDLEtBQUssRUFBRSxRQUFRLENBQUMsaUJBQWlCO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXBDRCw4Q0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBnZXRDb25zdGFudCwgZ2V0RW52Q29uc3RhbnQgfSBmcm9tICcuLi91dGlsL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBidWlsZENvbmZpZyB9IGZyb20gJy4uL3V0aWwvaW5pdEJ1aWxkQ29uZmlnJztcbmltcG9ydCB7IGdldEluc3RhbmNlVHlwZSB9IGZyb20gJy4uL3V0aWwvZ2V0SW5zdGFuY2VUeXBlJztcbmltcG9ydCB7IGdldEVjMlVzZXJEYXRhIH0gZnJvbSAnLi4vdXRpbC9nZXRFYzJVc2VyRGF0YSc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZVN0b3JhZ2UgfSBmcm9tICcuLi91dGlsL2dldEluc3RhbmNlU3RvcmFnZSc7XG5cbmV4cG9ydCBjbGFzcyBNaWNyb3NlcnZpY2VNeVNxbCBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogY2RrLlN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmICghYnVpbGRDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQnVpbGRDb25maWcgbm90IHNldCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHZwYyA9IGNkay5hd3NfZWMyLlZwYy5mcm9tTG9va3VwKHRoaXMsICdWUENMb29rdXAnLCB7XG4gICAgICB2cGNOYW1lOiBnZXRFbnZDb25zdGFudCgndnBjSWQnKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlY0dyb3VwID0gY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cC5mcm9tTG9va3VwQnlOYW1lKHRoaXMsICdTZWNHcm91cExvb2t1cCcsIGdldEVudkNvbnN0YW50KCdteXNxbFNlY3VyaXR5R3JvdXBJZCcpLCB2cGMpO1xuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY2RrLmF3c19lYzIuSW5zdGFuY2UodGhpcywgYGVjMi1teXNxbC0ke2J1aWxkQ29uZmlnLmVudk5hbWV9YCwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cDogc2VjR3JvdXAsXG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZVR5cGUoZ2V0SW5zdGFuY2VUeXBlKCdteXNxbCcpKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogY2RrLmF3c19lYzIuTWFjaGluZUltYWdlLmdlbmVyaWNMaW51eCh7XG4gICAgICAgIFtidWlsZENvbmZpZy5hd3MucmVnaW9uXTogZ2V0Q29uc3RhbnQoJ2RlZmF1bHRJbWFnZUFtaScpIGFzIHN0cmluZyxcbiAgICAgIH0pLFxuICAgICAgdnBjU3VibmV0czogeyBzdWJuZXRUeXBlOiBjZGsuYXdzX2VjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MgfSxcbiAgICAgIGFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzczogZmFsc2UsXG4gICAgICB1c2VyRGF0YTogY2RrLmF3c19lYzIuVXNlckRhdGEuY3VzdG9tKGdldEVjMlVzZXJEYXRhKCdteXNxbCcpKSxcbiAgICAgIHJvbGU6IGNkay5hd3NfaWFtLlJvbGUuZnJvbVJvbGVOYW1lKHRoaXMsICdCYXNlUm9sZUxvb2t1cCcsIGdldENvbnN0YW50KCdiYXNlUm9sZU5hbWUnKSBhcyBzdHJpbmcpLFxuICAgICAgYmxvY2tEZXZpY2VzOiBnZXRJbnN0YW5jZVN0b3JhZ2UoJ215c3FsJyksXG4gICAgfSk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnaW50ZXJuYWwtZG9tYWluJywge1xuICAgICAgdmFsdWU6IGluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZURuc05hbWUsXG4gICAgfSk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnaW50ZXJuYWwtaXAnLCB7XG4gICAgICB2YWx1ZTogaW5zdGFuY2UuaW5zdGFuY2VQcml2YXRlSXAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -17,29 +17,6 @@ class MicroserviceNetwork extends cdk.Stack {
|
|
|
17
17
|
blockPublicAccess: cdk.aws_s3.BlockPublicAccess.BLOCK_ACLS,
|
|
18
18
|
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
19
19
|
});
|
|
20
|
-
// create base role
|
|
21
|
-
new cdk.aws_iam.Role(this, (0, constants_1.getConstant)('baseRoleName'), {
|
|
22
|
-
roleName: (0, constants_1.getConstant)('baseRoleName'),
|
|
23
|
-
assumedBy: new cdk.aws_iam.ServicePrincipal('ec2.amazonaws.com'),
|
|
24
|
-
managedPolicies: [],
|
|
25
|
-
inlinePolicies: {
|
|
26
|
-
microserviceEc2InstanceRolePolicy: new cdk.aws_iam.PolicyDocument({
|
|
27
|
-
statements: [
|
|
28
|
-
new cdk.aws_iam.PolicyStatement({
|
|
29
|
-
sid: 'AllowInstanceToReadEnvFromS3',
|
|
30
|
-
resources: [`arn:aws:s3:::${(0, constants_1.getConstant)('publicBucketName')}/*`],
|
|
31
|
-
actions: ['s3:*'],
|
|
32
|
-
effect: cdk.aws_iam.Effect.ALLOW,
|
|
33
|
-
}),
|
|
34
|
-
new cdk.aws_iam.PolicyStatement({
|
|
35
|
-
sid: 'AllowInstanceToReadSSMParameters',
|
|
36
|
-
resources: [`arn:aws:ssm:${initBuildConfig_1.buildConfig.aws.region}:${initBuildConfig_1.buildConfig.aws.account}:parameter/${initBuildConfig_1.buildConfig.envName}/microservices/*`],
|
|
37
|
-
actions: ['ssm:GetParameter*'],
|
|
38
|
-
}),
|
|
39
|
-
],
|
|
40
|
-
}),
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
20
|
const vpc = new cdk.aws_ec2.Vpc(this, (0, constants_1.getEnvConstant)('vpcId'), {
|
|
44
21
|
vpcName: (0, constants_1.getEnvConstant)('vpcId'),
|
|
45
22
|
enableDnsHostnames: true,
|
|
@@ -137,4 +114,4 @@ class MicroserviceNetwork extends cdk.Stack {
|
|
|
137
114
|
}
|
|
138
115
|
}
|
|
139
116
|
exports.MicroserviceNetwork = MicroserviceNetwork;
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLW5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWljcm9zZXJ2aWNlLW5ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLGlEQUFnRTtBQUNoRSw2REFBc0Q7QUFFdEQsTUFBYSxtQkFBb0IsU0FBUSxHQUFHLENBQUMsS0FBSztJQUNoRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyw2QkFBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDNUMsVUFBVSxFQUFFLElBQUEsdUJBQVcsRUFBQyxrQkFBa0IsQ0FBVztZQUNyRCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsVUFBVTtZQUMxRCxhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPO1NBQ3pDLENBQUMsQ0FBQztRQUVILG1CQUFtQjtRQUNuQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFBLHVCQUFXLEVBQUMsY0FBYyxDQUFXLEVBQUU7WUFDaEUsUUFBUSxFQUFFLElBQUEsdUJBQVcsRUFBQyxjQUFjLENBQVc7WUFDL0MsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUNoRSxlQUFlLEVBQUUsRUFBRTtZQUNuQixjQUFjLEVBQUU7Z0JBQ2QsaUNBQWlDLEVBQUUsSUFB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dCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBNaWNyb3NlcnZpY2VOZXR3b3JrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIHB1YmxpYyBzMyBidWNrZXRcbiAgICBuZXcgY2RrLmF3c19zMy5CdWNrZXQodGhpcywgJ1B1YmxpY1MzQnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogZ2V0Q29uc3RhbnQoJ3B1YmxpY0J1Y2tldE5hbWUnKSBhcyBzdHJpbmcsXG4gICAgICBwdWJsaWNSZWFkQWNjZXNzOiB0cnVlLFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IGNkay5hd3NfczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUNMUyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICAvLyBjcmVhdGUgYmFzZSByb2xlXG4gICAgbmV3IGNkay5hd3NfaWFtLlJvbGUodGhpcywgZ2V0Q29uc3RhbnQoJ2Jhc2VSb2xlTmFtZScpIGFzIHN0cmluZywge1xuICAgICAgcm9sZU5hbWU6IGdldENvbnN0YW50KCdiYXNlUm9sZU5hbWUnKSBhcyBzdHJpbmcsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBjZGsuYXdzX2lhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlYzIuYW1hem9uYXdzLmNvbScpLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIG1pY3Jvc2VydmljZUVjMkluc3RhbmNlUm9sZVBvbGljeTogbmV3IGNkay5hd3NfaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgY2RrLmF3c19pYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dJbnN0YW5jZVRvUmVhZEVudkZyb21TMycsXG4gICAgICAgICAgICAgIHJlc291cmNlczogW2Bhcm46YXdzOnMzOjo6JHtnZXRDb25zdGFudCgncHVibGljQnVja2V0TmFtZScpfS8qYF0sXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnczM6KiddLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGNkay5hd3NfaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGNkay5hd3NfaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93SW5zdGFuY2VUb1JlYWRTU01QYXJhbWV0ZXJzJyxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6c3NtOiR7YnVpbGRDb25maWcuYXdzLnJlZ2lvbn06JHtidWlsZENvbmZpZy5hd3MuYWNjb3VudH06cGFyYW1ldGVyLyR7YnVpbGRDb25maWcuZW52TmFtZX0vbWljcm9zZXJ2aWNlcy8qYF0sXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnc3NtOkdldFBhcmFtZXRlcionXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZwYyA9IG5ldyBjZGsuYXdzX2VjMi5WcGModGhpcywgZ2V0RW52Q29uc3RhbnQoJ3ZwY0lkJyksIHtcbiAgICAgIHZwY05hbWU6IGdldEVudkNvbnN0YW50KCd2cGNJZCcpLFxuICAgICAgZW5hYmxlRG5zSG9zdG5hbWVzOiB0cnVlLFxuICAgICAgZW5hYmxlRG5zU3VwcG9ydDogdHJ1ZSxcbiAgICAgIG1heEF6czogMSxcbiAgICAgIG5hdEdhdGV3YXlzOiAxLFxuICAgICAgLy8gcHJvdmlzaW9uIGFuZCB1c2UgYW4gRUMyIGluc3RhbmNlIGFzIE5BVCBnYXRld2F5IGluIG5vbi1wcm9kIGVudmlyb25tZW50c1xuICAgICAgLy8gaW4gcHJvZCwgdGhlIGRlZmF1bHQgbW9yZSBzY2FsYWJsZS9leHBlbnNpdmUgTkFUIGdhdGV3YXkgd2lsbCBiZSB1c2VkXG4gICAgICAuLi4oYnVpbGRDb25maWcuZW52TmFtZSAhPT0gJ3Byb2QnICYmIHtcbiAgICAgICAgbmF0R2F0ZXdheVByb3ZpZGVyOiBuZXcgY2RrLmF3c19lYzIuTmF0SW5zdGFuY2VQcm92aWRlclYyKHtcbiAgICAgICAgICBpbnN0YW5jZVR5cGU6IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZVR5cGUoJ3Q0Zy5uYW5vJyksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICByZXN0cmljdERlZmF1bHRTZWN1cml0eUdyb3VwOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIFBvcnRhbFxuICAgIGNvbnN0IHBvcnRhbFNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdwb3J0YWxTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdwb3J0YWxTZWN1cml0eUdyb3VwSWQnKSxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBhZGQgcnVsZSBmb3IgSFRUUCBhY2Nlc3NcbiAgICBwb3J0YWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5hbnlJcHY0KCksIGNkay5hd3NfZWMyLlBvcnQudGNwKDgwKSwgJ0hUVFAgZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBIVFRQUyBhY2Nlc3NcbiAgICBwb3J0YWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5hbnlJcHY0KCksIGNkay5hd3NfZWMyLlBvcnQudGNwKDQ0MyksICdIVFRQUyBmcm9tIGFueXdoZXJlJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBwb3J0YWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgQVBJIEdhdGV3YXlcbiAgICBjb25zdCBhcGlHYXRld2F5U2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ2FwaUdhdGV3YXlTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdhcGlHYXRld2F5U2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIEhUVFAgYWNjZXNzXG4gICAgYXBpR2F0ZXdheVNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmFueUlwdjQoKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoODApLCAnSFRUUCBmcm9tIGFueXdoZXJlJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIEhUVFBTIGFjY2Vzc1xuICAgIGFwaUdhdGV3YXlTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5hbnlJcHY0KCksIGNkay5hd3NfZWMyLlBvcnQudGNwKDQ0MyksICdIVFRQUyBmcm9tIGFueXdoZXJlJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBhcGlHYXRld2F5U2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuYW55SXB2NCgpLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBpbnRlcm5hbCBjb21tdW5pY2F0aW9uXG4gICAgYXBpR2F0ZXdheVNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDgwODEpLCAnSW50ZXJuYWwgbWljcm9zZXJ2aWNlIGNvbW11bmljYXRpb24gZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgUmVkaXMgc2VydmVyXG4gICAgY29uc3QgcmVkaXNTZWNHcnAgPSBuZXcgY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBnZXRFbnZDb25zdGFudCgncmVkaXNTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdyZWRpc1NlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgcmVkaXNTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIFJlZGlzIGFjY2Vzc1xuICAgIHJlZGlzU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoNjM3OSksICdSZWRpcyBmcm9tIHdpdGhpbiBWUEMnKTtcblxuICAgIC8vIHNlY3VyaXR5IGdyb3VwIGZvciBNeVNRTCBzZXJ2ZXJcbiAgICBjb25zdCBteXNxbFNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdteXNxbFNlY3VyaXR5R3JvdXBJZCcpLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogZ2V0RW52Q29uc3RhbnQoJ215c3FsU2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBteXNxbFNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDIyKSwgJ1NTSCBmcm9tIHdpdGhpbiBWUEMnKTtcbiAgICAvLyBhZGQgcnVsZSBmb3IgTXlTUUwgYWNjZXNzXG4gICAgbXlzcWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgzMzA2KSwgJ015U1FMIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIE5vdGlmaWNhdGlvbiBzZXJ2aWNlXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uU2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ25vdGlmaWNhdGlvblNlcnZpY2VTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdub3RpZmljYXRpb25TZXJ2aWNlU2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBub3RpZmljYXRpb25TZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgTGFyYXZlbC1iYXNlZCBzZXJ2aWNlc1xuICAgIGNvbnN0IGxhcmF2ZWxTZWNHcnAgPSBuZXcgY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBnZXRFbnZDb25zdGFudCgnbGFyYXZlbEJhc2VkU2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgnbGFyYXZlbEJhc2VkU2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBsYXJhdmVsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gd2l0aGluIFZQQycpO1xuICAgIC8vIGFkZCBydWxlIGZvciBIVFRQXG4gICAgbGFyYXZlbFNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDgwODApLCAnSFRUUCBmcm9tIHdpdGhpbiBWUEMnKTtcblxuICAgIC8vIHNlY3VyaXR5IGdyb3VwIGZvciBJbnN0YW5jZSBDb25uZWN0aW9uIEVuZHBvaW50XG4gICAgY29uc3QgaWNlU2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ2VjMkluc3RhbmNlQ29ubmVjdEVuZHBvaW50U2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgnZWMySW5zdGFuY2VDb25uZWN0RW5kcG9pbnRTZWN1cml0eUdyb3VwSWQnKSxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIG91dGJvdW5kIFNTSFxuICAgIGljZVNlY0dycC5hZGRFZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIHRvIHdpdGhpbiBWUEMnKTtcblxuICAgIG5ldyBjZGsuYXdzX2VjMi5DZm5JbnN0YW5jZUNvbm5lY3RFbmRwb2ludCh0aGlzLCBnZXRFbnZDb25zdGFudCgnZWMySW5zdGFuY2VDb25uZWN0RW5kcG9pbnRJZCcpLCB7XG4gICAgICBzZWN1cml0eUdyb3VwSWRzOiBbaWNlU2VjR3JwLnNlY3VyaXR5R3JvdXBJZF0sXG4gICAgICBzdWJuZXRJZDogdnBjLnByaXZhdGVTdWJuZXRzWzBdLnN1Ym5ldElkLFxuICAgIH0pO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ3ZwYyBJRCcsIHtcbiAgICAgIHZhbHVlOiB2cGMudnBjSWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLW5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWljcm9zZXJ2aWNlLW5ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLGlEQUFnRTtBQUNoRSw2REFBc0Q7QUFFdEQsTUFBYSxtQkFBb0IsU0FBUSxHQUFHLENBQUMsS0FBSztJQUNoRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyw2QkFBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDNUMsVUFBVSxFQUFFLElBQUEsdUJBQVcsRUFBQyxrQkFBa0IsQ0FBVztZQUNyRCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsVUFBVTtZQUMxRCxhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPO1NBQ3pDLENBQUMsQ0FBQztRQUVILE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUEsMEJBQWMsRUFBQyxPQUFPLENBQUMsRUFBRTtZQUM3RCxPQUFPLEVBQUUsSUFBQSwwQkFBYyxFQUFDLE9BQU8sQ0FBQztZQUNoQyxrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsTUFBTSxFQUFFLENBQUM7WUFDVCxXQUFXLEVBQUUsQ0FBQztZQUNkLDRFQUE0RTtZQUM1RSx3RUFBd0U7WUFDeEUsR0FB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QUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEvSEQsa0RBK0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBNaWNyb3NlcnZpY2VOZXR3b3JrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIHB1YmxpYyBzMyBidWNrZXRcbiAgICBuZXcgY2RrLmF3c19zMy5CdWNrZXQodGhpcywgJ1B1YmxpY1MzQnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogZ2V0Q29uc3RhbnQoJ3B1YmxpY0J1Y2tldE5hbWUnKSBhcyBzdHJpbmcsXG4gICAgICBwdWJsaWNSZWFkQWNjZXNzOiB0cnVlLFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IGNkay5hd3NfczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUNMUyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBjb25zdCB2cGMgPSBuZXcgY2RrLmF3c19lYzIuVnBjKHRoaXMsIGdldEVudkNvbnN0YW50KCd2cGNJZCcpLCB7XG4gICAgICB2cGNOYW1lOiBnZXRFbnZDb25zdGFudCgndnBjSWQnKSxcbiAgICAgIGVuYWJsZURuc0hvc3RuYW1lczogdHJ1ZSxcbiAgICAgIGVuYWJsZURuc1N1cHBvcnQ6IHRydWUsXG4gICAgICBtYXhBenM6IDEsXG4gICAgICBuYXRHYXRld2F5czogMSxcbiAgICAgIC8vIHByb3Zpc2lvbiBhbmQgdXNlIGFuIEVDMiBpbnN0YW5jZSBhcyBOQVQgZ2F0ZXdheSBpbiBub24tcHJvZCBlbnZpcm9ubWVudHNcbiAgICAgIC8vIGluIHByb2QsIHRoZSBkZWZhdWx0IG1vcmUgc2NhbGFibGUvZXhwZW5zaXZlIE5BVCBnYXRld2F5IHdpbGwgYmUgdXNlZFxuICAgICAgLi4uKGJ1aWxkQ29uZmlnLmVudk5hbWUgIT09ICdwcm9kJyAmJiB7XG4gICAgICAgIG5hdEdhdGV3YXlQcm92aWRlcjogbmV3IGNkay5hd3NfZWMyLk5hdEluc3RhbmNlUHJvdmlkZXJWMih7XG4gICAgICAgICAgaW5zdGFuY2VUeXBlOiBuZXcgY2RrLmF3c19lYzIuSW5zdGFuY2VUeXBlKCd0NGcubmFubycpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgcmVzdHJpY3REZWZhdWx0U2VjdXJpdHlHcm91cDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIHNlY3VyaXR5IGdyb3VwIGZvciBQb3J0YWxcbiAgICBjb25zdCBwb3J0YWxTZWNHcnAgPSBuZXcgY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBnZXRFbnZDb25zdGFudCgncG9ydGFsU2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgncG9ydGFsU2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIEhUVFAgYWNjZXNzXG4gICAgcG9ydGFsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuYW55SXB2NCgpLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg4MCksICdIVFRQIGZyb20gYW55d2hlcmUnKTtcbiAgICAvLyBhZGQgcnVsZSBmb3IgSFRUUFMgYWNjZXNzXG4gICAgcG9ydGFsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuYW55SXB2NCgpLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg0NDMpLCAnSFRUUFMgZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgcG9ydGFsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIEFQSSBHYXRld2F5XG4gICAgY29uc3QgYXBpR2F0ZXdheVNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdhcGlHYXRld2F5U2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgnYXBpR2F0ZXdheVNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBIVFRQIGFjY2Vzc1xuICAgIGFwaUdhdGV3YXlTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5hbnlJcHY0KCksIGNkay5hd3NfZWMyLlBvcnQudGNwKDgwKSwgJ0hUVFAgZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBIVFRQUyBhY2Nlc3NcbiAgICBhcGlHYXRld2F5U2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuYW55SXB2NCgpLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg0NDMpLCAnSFRUUFMgZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgYXBpR2F0ZXdheVNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmFueUlwdjQoKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gYW55d2hlcmUnKTtcbiAgICAvLyBhZGQgcnVsZSBmb3IgaW50ZXJuYWwgY29tbXVuaWNhdGlvblxuICAgIGFwaUdhdGV3YXlTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg4MDgxKSwgJ0ludGVybmFsIG1pY3Jvc2VydmljZSBjb21tdW5pY2F0aW9uIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIFJlZGlzIHNlcnZlclxuICAgIGNvbnN0IHJlZGlzU2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ3JlZGlzU2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgncmVkaXNTZWN1cml0eUdyb3VwSWQnKSxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBhZGQgcnVsZSBmb3IgU1NIIGFjY2Vzc1xuICAgIHJlZGlzU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gd2l0aGluIFZQQycpO1xuICAgIC8vIGFkZCBydWxlIGZvciBSZWRpcyBhY2Nlc3NcbiAgICByZWRpc1NlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDYzNzkpLCAnUmVkaXMgZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgTXlTUUwgc2VydmVyXG4gICAgY29uc3QgbXlzcWxTZWNHcnAgPSBuZXcgY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBnZXRFbnZDb25zdGFudCgnbXlzcWxTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdteXNxbFNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgbXlzcWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIE15U1FMIGFjY2Vzc1xuICAgIG15c3FsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMzMwNiksICdNeVNRTCBmcm9tIHdpdGhpbiBWUEMnKTtcblxuICAgIC8vIHNlY3VyaXR5IGdyb3VwIGZvciBOb3RpZmljYXRpb24gc2VydmljZVxuICAgIGNvbnN0IG5vdGlmaWNhdGlvblNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdub3RpZmljYXRpb25TZXJ2aWNlU2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgnbm90aWZpY2F0aW9uU2VydmljZVNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgbm90aWZpY2F0aW9uU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIExhcmF2ZWwtYmFzZWQgc2VydmljZXNcbiAgICBjb25zdCBsYXJhdmVsU2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ2xhcmF2ZWxCYXNlZFNlY3VyaXR5R3JvdXBJZCcpLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogZ2V0RW52Q29uc3RhbnQoJ2xhcmF2ZWxCYXNlZFNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgbGFyYXZlbFNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDIyKSwgJ1NTSCBmcm9tIHdpdGhpbiBWUEMnKTtcbiAgICAvLyBhZGQgcnVsZSBmb3IgSFRUUFxuICAgIGxhcmF2ZWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg4MDgwKSwgJ0hUVFAgZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgSW5zdGFuY2UgQ29ubmVjdGlvbiBFbmRwb2ludFxuICAgIGNvbnN0IGljZVNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdlYzJJbnN0YW5jZUNvbm5lY3RFbmRwb2ludFNlY3VyaXR5R3JvdXBJZCcpLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogZ2V0RW52Q29uc3RhbnQoJ2VjMkluc3RhbmNlQ29ubmVjdEVuZHBvaW50U2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBvdXRib3VuZCBTU0hcbiAgICBpY2VTZWNHcnAuYWRkRWdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDIyKSwgJ1NTSCB0byB3aXRoaW4gVlBDJyk7XG5cbiAgICBuZXcgY2RrLmF3c19lYzIuQ2ZuSW5zdGFuY2VDb25uZWN0RW5kcG9pbnQodGhpcywgZ2V0RW52Q29uc3RhbnQoJ2VjMkluc3RhbmNlQ29ubmVjdEVuZHBvaW50SWQnKSwge1xuICAgICAgc2VjdXJpdHlHcm91cElkczogW2ljZVNlY0dycC5zZWN1cml0eUdyb3VwSWRdLFxuICAgICAgc3VibmV0SWQ6IHZwYy5wcml2YXRlU3VibmV0c1swXS5zdWJuZXRJZCxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICd2cGMgSUQnLCB7XG4gICAgICB2YWx1ZTogdnBjLnZwY0lkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -6,6 +6,7 @@ const constants_1 = require("../util/constants");
|
|
|
6
6
|
const initBuildConfig_1 = require("../util/initBuildConfig");
|
|
7
7
|
const getInstanceType_1 = require("../util/getInstanceType");
|
|
8
8
|
const getEc2UserData_1 = require("../util/getEc2UserData");
|
|
9
|
+
const getInstanceStorage_1 = require("../util/getInstanceStorage");
|
|
9
10
|
class MicroserviceNotificationService extends cdk.Stack {
|
|
10
11
|
constructor(scope, id, props) {
|
|
11
12
|
super(scope, id, props);
|
|
@@ -27,6 +28,7 @@ class MicroserviceNotificationService extends cdk.Stack {
|
|
|
27
28
|
associatePublicIpAddress: false,
|
|
28
29
|
userData: cdk.aws_ec2.UserData.custom((0, getEc2UserData_1.getEc2UserData)('notification')),
|
|
29
30
|
role: cdk.aws_iam.Role.fromRoleName(this, 'BaseRoleLookup', (0, constants_1.getConstant)('baseRoleName')),
|
|
31
|
+
blockDevices: (0, getInstanceStorage_1.getInstanceStorage)('notification'),
|
|
30
32
|
});
|
|
31
33
|
new cdk.CfnOutput(this, 'notification-service-internal-address', {
|
|
32
34
|
value: instance.instancePrivateDnsName,
|
|
@@ -37,4 +39,4 @@ class MicroserviceNotificationService extends cdk.Stack {
|
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
exports.MicroserviceNotificationService = MicroserviceNotificationService;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLW5vdGlmaWNhdGlvbi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL21pY3Jvc2VydmljZS1ub3RpZmljYXRpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsaURBQWdFO0FBQ2hFLDZEQUFzRDtBQUN0RCw2REFBMEQ7QUFDMUQsMkRBQXdEO0FBQ3hELG1FQUFnRTtBQUVoRSxNQUFhLCtCQUFnQyxTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQzVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLDZCQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3hELE9BQU8sRUFBRSxJQUFBLDBCQUFjLEVBQUMsT0FBTyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFBLDBCQUFjLEVBQUMsb0NBQW9DLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUvSSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSw0QkFBNEIsNkJBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqRyxHQUFHO1lBQ0gsYUFBYSxFQUFFLFFBQVE7WUFDdkIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBQSxpQ0FBZSxFQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzNFLFlBQVksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7Z0JBQ2xELENBQUMsNkJBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGlCQUFpQixDQUFXO2FBQ25FLENBQUM7WUFDRixVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUU7WUFDdEUsd0JBQXdCLEVBQUUsS0FBSztZQUMvQixRQUFRLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUEsK0JBQWMsRUFBQyxjQUFjLENBQUMsQ0FBQztZQUNyRSxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFBLHVCQUFXLEVBQUMsY0FBYyxDQUFXLENBQUM7WUFDbEcsWUFBWSxFQUFFLElBQUEsdUNBQWtCLEVBQUMsY0FBYyxDQUFDO1NBQ2pELENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsdUNBQXVDLEVBQUU7WUFDL0QsS0FBSyxFQUFFLFFBQVEsQ0FBQyxzQkFBc0I7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxrQ0FBa0MsRUFBRTtZQUMxRCxLQUFLLEVBQUUsUUFBUSxDQUFDLGlCQUFpQjtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFwQ0QsMEVBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZVR5cGUgfSBmcm9tICcuLi91dGlsL2dldEluc3RhbmNlVHlwZSc7XG5pbXBvcnQgeyBnZXRFYzJVc2VyRGF0YSB9IGZyb20gJy4uL3V0aWwvZ2V0RWMyVXNlckRhdGEnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VTdG9yYWdlIH0gZnJvbSAnLi4vdXRpbC9nZXRJbnN0YW5jZVN0b3JhZ2UnO1xuXG5leHBvcnQgY2xhc3MgTWljcm9zZXJ2aWNlTm90aWZpY2F0aW9uU2VydmljZSBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogY2RrLlN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmICghYnVpbGRDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQnVpbGRDb25maWcgbm90IHNldCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHZwYyA9IGNkay5hd3NfZWMyLlZwYy5mcm9tTG9va3VwKHRoaXMsICdWUENMb29rdXAnLCB7XG4gICAgICB2cGNOYW1lOiBnZXRFbnZDb25zdGFudCgndnBjSWQnKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlY0dyb3VwID0gY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cC5mcm9tTG9va3VwQnlOYW1lKHRoaXMsICdTZWNHcm91cExvb2t1cCcsIGdldEVudkNvbnN0YW50KCdub3RpZmljYXRpb25TZXJ2aWNlU2VjdXJpdHlHcm91cElkJyksIHZwYyk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZSh0aGlzLCBgZWMyLW5vdGlmaWNhdGlvbi1zZXJ2aWNlLSR7YnVpbGRDb25maWcuZW52TmFtZX1gLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwOiBzZWNHcm91cCxcbiAgICAgIGluc3RhbmNlVHlwZTogbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlVHlwZShnZXRJbnN0YW5jZVR5cGUoJ25vdGlmaWNhdGlvbicpKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogY2RrLmF3c19lYzIuTWFjaGluZUltYWdlLmdlbmVyaWNMaW51eCh7XG4gICAgICAgIFtidWlsZENvbmZpZy5hd3MucmVnaW9uXTogZ2V0Q29uc3RhbnQoJ2RlZmF1bHRJbWFnZUFtaScpIGFzIHN0cmluZyxcbiAgICAgIH0pLFxuICAgICAgdnBjU3VibmV0czogeyBzdWJuZXRUeXBlOiBjZGsuYXdzX2VjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MgfSxcbiAgICAgIGFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzczogZmFsc2UsXG4gICAgICB1c2VyRGF0YTogY2RrLmF3c19lYzIuVXNlckRhdGEuY3VzdG9tKGdldEVjMlVzZXJEYXRhKCdub3RpZmljYXRpb24nKSksXG4gICAgICByb2xlOiBjZGsuYXdzX2lhbS5Sb2xlLmZyb21Sb2xlTmFtZSh0aGlzLCAnQmFzZVJvbGVMb29rdXAnLCBnZXRDb25zdGFudCgnYmFzZVJvbGVOYW1lJykgYXMgc3RyaW5nKSxcbiAgICAgIGJsb2NrRGV2aWNlczogZ2V0SW5zdGFuY2VTdG9yYWdlKCdub3RpZmljYXRpb24nKSxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdub3RpZmljYXRpb24tc2VydmljZS1pbnRlcm5hbC1hZGRyZXNzJywge1xuICAgICAgdmFsdWU6IGluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZURuc05hbWUsXG4gICAgfSk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnbm90aWZpY2F0aW9uLXNlcnZpY2UtaW50ZXJuYWwtaXAnLCB7XG4gICAgICB2YWx1ZTogaW5zdGFuY2UuaW5zdGFuY2VQcml2YXRlSXAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,6 +6,7 @@ const constants_1 = require("../util/constants");
|
|
|
6
6
|
const initBuildConfig_1 = require("../util/initBuildConfig");
|
|
7
7
|
const getInstanceType_1 = require("../util/getInstanceType");
|
|
8
8
|
const getEc2UserData_1 = require("../util/getEc2UserData");
|
|
9
|
+
const getInstanceStorage_1 = require("../util/getInstanceStorage");
|
|
9
10
|
class MicroservicePortal extends cdk.Stack {
|
|
10
11
|
constructor(scope, id, props) {
|
|
11
12
|
super(scope, id, props);
|
|
@@ -27,6 +28,7 @@ class MicroservicePortal extends cdk.Stack {
|
|
|
27
28
|
associatePublicIpAddress: false,
|
|
28
29
|
userData: cdk.aws_ec2.UserData.custom((0, getEc2UserData_1.getEc2UserData)('portal')),
|
|
29
30
|
role: cdk.aws_iam.Role.fromRoleName(this, 'BaseRoleLookup', (0, constants_1.getConstant)('baseRoleName')),
|
|
31
|
+
blockDevices: (0, getInstanceStorage_1.getInstanceStorage)('portal'),
|
|
30
32
|
});
|
|
31
33
|
new cdk.aws_ec2.CfnEIP(this, 'AssignElasticIP', {
|
|
32
34
|
instanceId: instance.instanceId,
|
|
@@ -37,4 +39,4 @@ class MicroservicePortal extends cdk.Stack {
|
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
exports.MicroservicePortal = MicroservicePortal;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLXBvcnRhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9taWNyb3NlcnZpY2UtcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUVuQyxpREFBZ0U7QUFDaEUsNkRBQXNEO0FBQ3RELDZEQUEwRDtBQUMxRCwyREFBd0Q7QUFDeEQsbUVBQWdFO0FBRWhFLE1BQWEsa0JBQW1CLFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsNkJBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDeEQsT0FBTyxFQUFFLElBQUEsMEJBQWMsRUFBQyxPQUFPLENBQUM7U0FDakMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUEsMEJBQWMsRUFBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWxJLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsNkJBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuRixHQUFHO1lBQ0gsYUFBYSxFQUFFLFFBQVE7WUFDdkIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBQSxpQ0FBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLFlBQVksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7Z0JBQ2xELENBQUMsNkJBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGlCQUFpQixDQUFXO2FBQ25FLENBQUM7WUFDRixVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3pELHdCQUF3QixFQUFFLEtBQUs7WUFDL0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFBLCtCQUFjLEVBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGNBQWMsQ0FBVyxDQUFDO1lBQ2xHLFlBQVksRUFBRSxJQUFBLHVDQUFrQixFQUFDLFFBQVEsQ0FBQztTQUMzQyxDQUFDLENBQUM7UUFFSCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUM5QyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUMxQyxLQUFLLEVBQUUsUUFBUSxDQUFDLGdCQUFnQjtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFuQ0QsZ0RBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZVR5cGUgfSBmcm9tICcuLi91dGlsL2dldEluc3RhbmNlVHlwZSc7XG5pbXBvcnQgeyBnZXRFYzJVc2VyRGF0YSB9IGZyb20gJy4uL3V0aWwvZ2V0RWMyVXNlckRhdGEnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VTdG9yYWdlIH0gZnJvbSAnLi4vdXRpbC9nZXRJbnN0YW5jZVN0b3JhZ2UnO1xuXG5leHBvcnQgY2xhc3MgTWljcm9zZXJ2aWNlUG9ydGFsIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgdnBjID0gY2RrLmF3c19lYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1ZQQ0xvb2t1cCcsIHtcbiAgICAgIHZwY05hbWU6IGdldEVudkNvbnN0YW50KCd2cGNJZCcpLFxuICAgIH0pO1xuICAgIGNvbnN0IHNlY0dyb3VwID0gY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cC5mcm9tTG9va3VwQnlOYW1lKHRoaXMsICdTZWNHcm91cExvb2t1cCcsIGdldEVudkNvbnN0YW50KCdwb3J0YWxTZWN1cml0eUdyb3VwSWQnKSwgdnBjKTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlKHRoaXMsIGBlYzItcG9ydGFsLSR7YnVpbGRDb25maWcuZW52TmFtZX1gLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwOiBzZWNHcm91cCxcbiAgICAgIGluc3RhbmNlVHlwZTogbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlVHlwZShnZXRJbnN0YW5jZVR5cGUoJ3BvcnRhbCcpKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogY2RrLmF3c19lYzIuTWFjaGluZUltYWdlLmdlbmVyaWNMaW51eCh7XG4gICAgICAgIFtidWlsZENvbmZpZy5hd3MucmVnaW9uXTogZ2V0Q29uc3RhbnQoJ2RlZmF1bHRJbWFnZUFtaScpIGFzIHN0cmluZyxcbiAgICAgIH0pLFxuICAgICAgdnBjU3VibmV0czogeyBzdWJuZXRUeXBlOiBjZGsuYXdzX2VjMi5TdWJuZXRUeXBlLlBVQkxJQyB9LFxuICAgICAgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOiBmYWxzZSxcbiAgICAgIHVzZXJEYXRhOiBjZGsuYXdzX2VjMi5Vc2VyRGF0YS5jdXN0b20oZ2V0RWMyVXNlckRhdGEoJ3BvcnRhbCcpKSxcbiAgICAgIHJvbGU6IGNkay5hd3NfaWFtLlJvbGUuZnJvbVJvbGVOYW1lKHRoaXMsICdCYXNlUm9sZUxvb2t1cCcsIGdldENvbnN0YW50KCdiYXNlUm9sZU5hbWUnKSBhcyBzdHJpbmcpLFxuICAgICAgYmxvY2tEZXZpY2VzOiBnZXRJbnN0YW5jZVN0b3JhZ2UoJ3BvcnRhbCcpLFxuICAgIH0pO1xuXG4gICAgbmV3IGNkay5hd3NfZWMyLkNmbkVJUCh0aGlzLCAnQXNzaWduRWxhc3RpY0lQJywge1xuICAgICAgaW5zdGFuY2VJZDogaW5zdGFuY2UuaW5zdGFuY2VJZCxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdwb3J0YWwtcHVibGljLWlwJywge1xuICAgICAgdmFsdWU6IGluc3RhbmNlLmluc3RhbmNlUHVibGljSXAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,6 +6,7 @@ const constants_1 = require("../util/constants");
|
|
|
6
6
|
const initBuildConfig_1 = require("../util/initBuildConfig");
|
|
7
7
|
const getInstanceType_1 = require("../util/getInstanceType");
|
|
8
8
|
const getEc2UserData_1 = require("../util/getEc2UserData");
|
|
9
|
+
const getInstanceStorage_1 = require("../util/getInstanceStorage");
|
|
9
10
|
class MicroserviceRedis extends cdk.Stack {
|
|
10
11
|
constructor(scope, id, props) {
|
|
11
12
|
super(scope, id, props);
|
|
@@ -27,6 +28,7 @@ class MicroserviceRedis extends cdk.Stack {
|
|
|
27
28
|
associatePublicIpAddress: false,
|
|
28
29
|
userData: cdk.aws_ec2.UserData.custom((0, getEc2UserData_1.getEc2UserData)('redis')),
|
|
29
30
|
role: cdk.aws_iam.Role.fromRoleName(this, 'BaseRoleLookup', (0, constants_1.getConstant)('baseRoleName')),
|
|
31
|
+
blockDevices: (0, getInstanceStorage_1.getInstanceStorage)('redis'),
|
|
30
32
|
});
|
|
31
33
|
new cdk.CfnOutput(this, 'redis-internal-address', {
|
|
32
34
|
value: instance.instancePrivateDnsName,
|
|
@@ -37,4 +39,4 @@ class MicroserviceRedis extends cdk.Stack {
|
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
exports.MicroserviceRedis = MicroserviceRedis;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLXJlZGlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL21pY3Jvc2VydmljZS1yZWRpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsaURBQWdFO0FBQ2hFLDZEQUFzRDtBQUN0RCw2REFBMEQ7QUFDMUQsMkRBQXdEO0FBQ3hELG1FQUFnRTtBQUVoRSxNQUFhLGlCQUFrQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQzlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLDZCQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3hELE9BQU8sRUFBRSxJQUFBLDBCQUFjLEVBQUMsT0FBTyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFBLDBCQUFjLEVBQUMsc0JBQXNCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVqSSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxhQUFhLDZCQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEYsR0FBRztZQUNILGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUEsaUNBQWUsRUFBQyxPQUFPLENBQUMsQ0FBQztZQUNwRSxZQUFZLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxDQUFDLDZCQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsdUJBQVcsRUFBQyxpQkFBaUIsQ0FBVzthQUNuRSxDQUFDO1lBQ0YsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFO1lBQ3RFLHdCQUF3QixFQUFFLEtBQUs7WUFDL0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFBLCtCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGNBQWMsQ0FBVyxDQUFDO1lBQ2xHLFlBQVksRUFBRSxJQUFBLHVDQUFrQixFQUFDLE9BQU8sQ0FBQztTQUMxQyxDQUFDLENBQUM7UUFFSCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ2hELEtBQUssRUFBRSxRQUFRLENBQUMsc0JBQXNCO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDM0MsS0FBSyxFQUFFLFFBQVEsQ0FBQyxpQkFBaUI7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBcENELDhDQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGdldENvbnN0YW50LCBnZXRFbnZDb25zdGFudCB9IGZyb20gJy4uL3V0aWwvY29uc3RhbnRzJztcbmltcG9ydCB7IGJ1aWxkQ29uZmlnIH0gZnJvbSAnLi4vdXRpbC9pbml0QnVpbGRDb25maWcnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VUeXBlIH0gZnJvbSAnLi4vdXRpbC9nZXRJbnN0YW5jZVR5cGUnO1xuaW1wb3J0IHsgZ2V0RWMyVXNlckRhdGEgfSBmcm9tICcuLi91dGlsL2dldEVjMlVzZXJEYXRhJztcbmltcG9ydCB7IGdldEluc3RhbmNlU3RvcmFnZSB9IGZyb20gJy4uL3V0aWwvZ2V0SW5zdGFuY2VTdG9yYWdlJztcblxuZXhwb3J0IGNsYXNzIE1pY3Jvc2VydmljZVJlZGlzIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgdnBjID0gY2RrLmF3c19lYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1ZQQ0xvb2t1cCcsIHtcbiAgICAgIHZwY05hbWU6IGdldEVudkNvbnN0YW50KCd2cGNJZCcpLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VjR3JvdXAgPSBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwLmZyb21Mb29rdXBCeU5hbWUodGhpcywgJ1NlY0dyb3VwTG9va3VwJywgZ2V0RW52Q29uc3RhbnQoJ3JlZGlzU2VjdXJpdHlHcm91cElkJyksIHZwYyk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZSh0aGlzLCBgZWMyLXJlZGlzLSR7YnVpbGRDb25maWcuZW52TmFtZX1gLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwOiBzZWNHcm91cCxcbiAgICAgIGluc3RhbmNlVHlwZTogbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlVHlwZShnZXRJbnN0YW5jZVR5cGUoJ3JlZGlzJykpLFxuICAgICAgbWFjaGluZUltYWdlOiBjZGsuYXdzX2VjMi5NYWNoaW5lSW1hZ2UuZ2VuZXJpY0xpbnV4KHtcbiAgICAgICAgW2J1aWxkQ29uZmlnLmF3cy5yZWdpb25dOiBnZXRDb25zdGFudCgnZGVmYXVsdEltYWdlQW1pJykgYXMgc3RyaW5nLFxuICAgICAgfSksXG4gICAgICB2cGNTdWJuZXRzOiB7IHN1Ym5ldFR5cGU6IGNkay5hd3NfZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUyB9LFxuICAgICAgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOiBmYWxzZSxcbiAgICAgIHVzZXJEYXRhOiBjZGsuYXdzX2VjMi5Vc2VyRGF0YS5jdXN0b20oZ2V0RWMyVXNlckRhdGEoJ3JlZGlzJykpLFxuICAgICAgcm9sZTogY2RrLmF3c19pYW0uUm9sZS5mcm9tUm9sZU5hbWUodGhpcywgJ0Jhc2VSb2xlTG9va3VwJywgZ2V0Q29uc3RhbnQoJ2Jhc2VSb2xlTmFtZScpIGFzIHN0cmluZyksXG4gICAgICBibG9ja0RldmljZXM6IGdldEluc3RhbmNlU3RvcmFnZSgncmVkaXMnKSxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdyZWRpcy1pbnRlcm5hbC1hZGRyZXNzJywge1xuICAgICAgdmFsdWU6IGluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZURuc05hbWUsXG4gICAgfSk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAncmVkaXMtaW50ZXJuYWwtaXAnLCB7XG4gICAgICB2YWx1ZTogaW5zdGFuY2UuaW5zdGFuY2VQcml2YXRlSXAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# install nginx
|
|
2
|
-
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -
|
|
2
|
+
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -yq
|
|
3
3
|
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
|
|
4
4
|
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
|
|
5
5
|
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
|
|
6
6
|
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
|
|
7
|
-
sudo apt update -
|
|
8
|
-
sudo apt install nginx nodejs dnsmasq supervisor -
|
|
7
|
+
sudo apt update -yq
|
|
8
|
+
sudo apt install nginx nodejs dnsmasq supervisor -yq
|
|
9
9
|
|
|
10
10
|
# copy appropriate server_name.conf based on env
|
|
11
11
|
cat $service_dir/nginx/microservices/server_name.{{envName}}.conf | sudo tee $service_dir/nginx/microservices/server_name.conf
|
|
@@ -31,15 +31,15 @@ cd $microservices_dir
|
|
|
31
31
|
exec &>>"$deployment_log_file"
|
|
32
32
|
|
|
33
33
|
# update and install packages
|
|
34
|
-
sudo apt update -
|
|
35
|
-
sudo apt install curl zip unzip -
|
|
34
|
+
sudo apt update -yq
|
|
35
|
+
sudo apt install curl zip unzip -yq
|
|
36
36
|
|
|
37
37
|
# remove redundant packages
|
|
38
|
-
sudo apt remove apache2 -
|
|
38
|
+
sudo apt remove apache2 -yq
|
|
39
39
|
|
|
40
40
|
# install AWS CLI
|
|
41
41
|
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
|
|
42
|
-
unzip -
|
|
42
|
+
unzip -oq awscliv2.zip
|
|
43
43
|
sudo ./aws/install --update
|
|
44
44
|
sudo rm -rf awscliv2.zip aws
|
|
45
45
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# install packages required for PHP/Laravel
|
|
2
|
-
sudo apt install curl gpg software-properties-common ca-certificates apt-transport-https lsb-release -
|
|
2
|
+
sudo apt install curl gpg software-properties-common ca-certificates apt-transport-https lsb-release -yq
|
|
3
3
|
sudo add-apt-repository ppa:ondrej/php -y
|
|
4
|
-
sudo apt install php8.3 supervisor -
|
|
5
|
-
sudo apt install php8.3-cli php8.3-pdo php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-common php8.3-dev php8.3-redis php8.3-swoole -
|
|
4
|
+
sudo apt install php8.3 supervisor -yq
|
|
5
|
+
sudo apt install php8.3-cli php8.3-pdo php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-common php8.3-dev php8.3-redis php8.3-swoole -yq
|
|
6
6
|
|
|
7
7
|
# install composer
|
|
8
8
|
sudo curl -sS https://getcomposer.org/installer | sudo php
|
|
@@ -15,6 +15,7 @@ microservice_port=8080
|
|
|
15
15
|
sudo echo "MICROSERVICE_INTERNAL_IP=\"$instance_private_ip\"" >> $configuration_dir/local.env
|
|
16
16
|
sudo echo "MICROSERVICE_INTERNAL_PORT=\"$microservice_port\"" >> $configuration_dir/local.env
|
|
17
17
|
sudo echo "DEPLOYED_ENV={{envName}}" >> $configuration_dir/local.env
|
|
18
|
+
sudo echo "HOSTING_PLATFORM=aws" >> $configuration_dir/local.env
|
|
18
19
|
sudo cat $configuration_dir/global-ssm.env >> .env
|
|
19
20
|
sudo cat $configuration_dir/service-ssm.env >> .env
|
|
20
21
|
sudo cat $configuration_dir/local.env >> .env
|
|
@@ -27,7 +28,7 @@ su - ubuntu -c "cd $service_dir && composer install --no-interaction --prefer-di
|
|
|
27
28
|
#su - ubuntu -c "cd $service_dir && composer require glicogh/healthcare-laravel-package:dev-master --no-interaction --prefer-dist --optimize-autoloader"
|
|
28
29
|
|
|
29
30
|
# remove redundant packages
|
|
30
|
-
sudo apt remove apache2 -
|
|
31
|
+
sudo apt remove apache2 -yq
|
|
31
32
|
|
|
32
33
|
# install openswoole
|
|
33
34
|
# echo '>>> Installing openswoole'
|
|
@@ -1,5 +1,28 @@
|
|
|
1
|
-
sudo
|
|
2
|
-
sudo apt install nodejs -y
|
|
1
|
+
sudo apt install nodejs npm supervisor -yq
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
microservice_port=8080
|
|
4
|
+
|
|
5
|
+
# create .env
|
|
6
|
+
sudo echo "MICROSERVICE_INTERNAL_IP=\"$instance_private_ip\"" >> $configuration_dir/local.env
|
|
7
|
+
sudo echo "MICROSERVICE_INTERNAL_PORT=\"$microservice_port\"" >> $configuration_dir/local.env
|
|
8
|
+
sudo echo "DEPLOYED_ENV={{envName}}" >> $configuration_dir/local.env
|
|
9
|
+
sudo echo "HOSTING_PLATFORM=aws" >> $configuration_dir/local.env
|
|
10
|
+
sudo cat $configuration_dir/global-ssm.env >> .env
|
|
11
|
+
sudo cat $configuration_dir/service-ssm.env >> .env
|
|
12
|
+
sudo cat $configuration_dir/local.env >> .env
|
|
13
|
+
|
|
14
|
+
cd $service_dir
|
|
15
|
+
sudo npm i
|
|
16
|
+
sudo npm run build:api
|
|
17
|
+
|
|
18
|
+
sudo ln -sf $service_dir/.env $service_dir/src/api/.env
|
|
19
|
+
sudo ln -sf $service_dir/.env $service_dir/dist/api/.env
|
|
20
|
+
|
|
21
|
+
# configure supervisor
|
|
22
|
+
sudo sed -i "s|files = .*|files = /etc/supervisor/conf.d/*.conf ${service_dir}/supervisor/conf.d/*.conf|" /etc/supervisor/supervisord.conf
|
|
23
|
+
|
|
24
|
+
# start supervisor
|
|
25
|
+
sudo systemctl restart supervisor
|
|
26
|
+
|
|
27
|
+
# service discovery
|
|
28
|
+
sudo npm run discovery:api
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# install nginx
|
|
2
|
-
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -
|
|
2
|
+
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -yq
|
|
3
3
|
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
|
|
4
4
|
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
|
|
5
5
|
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
|
|
6
6
|
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
|
|
7
|
-
sudo apt update -
|
|
8
|
-
sudo apt install nginx npm -
|
|
7
|
+
sudo apt update -yq
|
|
8
|
+
sudo apt install nginx npm -yq
|
|
9
9
|
|
|
10
10
|
# create .env
|
|
11
11
|
sudo echo "DEPLOYED_ENV={{envName}}" >> $configuration_dir/local.env
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
sudo apt install lsb-release curl gpg -
|
|
1
|
+
sudo apt install lsb-release curl gpg -yq
|
|
2
2
|
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
|
|
3
3
|
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
|
|
4
4
|
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
|
|
5
|
-
sudo apt update -
|
|
6
|
-
sudo apt install redis -
|
|
5
|
+
sudo apt update -yq
|
|
6
|
+
sudo apt install redis -yq
|
|
7
7
|
sudo sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis/redis.conf
|
|
8
8
|
sudo sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis/redis.conf
|
|
9
9
|
sudo systemctl restart redis-server
|
package/dist/util/constants.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ declare const CONSTANTS: {
|
|
|
11
11
|
readonly ec2InstanceConnectEndpointSecurityGroupId: "Instance-Connect-Endpoint-SG";
|
|
12
12
|
readonly defaultImageAmi: "ami-0e182bc1c32ba03c3";
|
|
13
13
|
readonly defaultInstanceSize: "t4g.nano";
|
|
14
|
+
readonly defaultStorageSize: 8;
|
|
15
|
+
readonly defaultStorageType: "gp3";
|
|
14
16
|
readonly keyPairName: "isa";
|
|
15
17
|
readonly baseRoleName: "EC2-Instance-Base-Role";
|
|
16
18
|
readonly publicBucketName: "glicogh-healthcare-files";
|
|
@@ -19,7 +21,7 @@ declare const CONSTANTS: {
|
|
|
19
21
|
readonly gitBranches: RepoBranches;
|
|
20
22
|
};
|
|
21
23
|
};
|
|
22
|
-
export declare function getConstant(key: keyof typeof CONSTANTS): "Microservice-VPC" | "API-Gateway-SG" | "Portal-SG" | "Redis-SG" | "Laravel-Based-SG" | "Notification-Service-SG" | "MySQL-SG" | "Instance-Connect-Endpoint" | "Instance-Connect-Endpoint-SG" | "ami-0e182bc1c32ba03c3" | "t4g.nano" | "isa" | "EC2-Instance-Base-Role" | "glicogh-healthcare-files" | {
|
|
24
|
+
export declare function getConstant(key: keyof typeof CONSTANTS): 8 | "gp3" | "Microservice-VPC" | "API-Gateway-SG" | "Portal-SG" | "Redis-SG" | "Laravel-Based-SG" | "Notification-Service-SG" | "MySQL-SG" | "Instance-Connect-Endpoint" | "Instance-Connect-Endpoint-SG" | "ami-0e182bc1c32ba03c3" | "t4g.nano" | "isa" | "EC2-Instance-Base-Role" | "glicogh-healthcare-files" | {
|
|
23
25
|
readonly githubRepoPaths: RepoUrls;
|
|
24
26
|
readonly gitBranches: RepoBranches;
|
|
25
27
|
};
|
package/dist/util/constants.js
CHANGED
|
@@ -29,6 +29,8 @@ const CONSTANTS = {
|
|
|
29
29
|
ec2InstanceConnectEndpointSecurityGroupId: 'Instance-Connect-Endpoint-SG',
|
|
30
30
|
defaultImageAmi: 'ami-0e182bc1c32ba03c3', // ARM based
|
|
31
31
|
defaultInstanceSize: 't4g.nano', // ARM based
|
|
32
|
+
defaultStorageSize: 8,
|
|
33
|
+
defaultStorageType: 'gp3',
|
|
32
34
|
keyPairName: 'isa',
|
|
33
35
|
baseRoleName: 'EC2-Instance-Base-Role',
|
|
34
36
|
publicBucketName: 'glicogh-healthcare-files',
|
|
@@ -43,4 +45,4 @@ function getConstant(key) {
|
|
|
43
45
|
function getEnvConstant(key) {
|
|
44
46
|
return `${getConstant(key)}-${initBuildConfig_1.buildConfig?.envName}`;
|
|
45
47
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQ0Esa0NBRUM7QUFFRCx3Q0FFQztBQS9DRCx1REFBZ0Q7QUFFaEQsTUFBTSxTQUFTLEdBQWE7SUFDMUIsT0FBTyxFQUFFLDZDQUE2QztJQUN0RCxJQUFJLEVBQUUsMENBQTBDO0lBQ2hELE1BQU0sRUFBRSw0Q0FBNEM7SUFDcEQsTUFBTSxFQUFFLDRDQUE0QztJQUNwRCxTQUFTLEVBQUUsK0NBQStDO0lBQzFELFlBQVksRUFBRSxrREFBa0Q7SUFDaEUsYUFBYSxFQUFFLG9DQUFvQztJQUNuRCxNQUFNLEVBQUUsK0JBQStCO0NBQ3hDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBaUI7SUFDakMsR0FBRyxFQUFFLFFBQVE7SUFDYixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUc7SUFDaEIsS0FBSyxFQUFFLGtCQUFrQjtJQUN6Qix5QkFBeUIsRUFBRSxnQkFBZ0I7SUFDM0MscUJBQXFCLEVBQUUsV0FBVztJQUNsQyxvQkFBb0IsRUFBRSxVQUFVO0lBQ2hDLDJCQUEyQixFQUFFLGtCQUFrQjtJQUMvQyxrQ0FBa0MsRUFBRSx5QkFBeUI7SUFDN0Qsb0JBQW9CLEVBQUUsVUFBVTtJQUNoQyw0QkFBNEIsRUFBRSwyQkFBMkI7SUFDekQseUNBQXlDLEVBQUUsOEJBQThCO0lBQ3pFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxZQUFZO0lBQ3RELG1CQUFtQixFQUFFLFVBQVUsRUFBRSxZQUFZO0lBQzdDLGtCQUFrQixFQUFFLENBQUM7SUFDckIsa0JBQWtCLEVBQUUsS0FBSztJQUN6QixXQUFXLEVBQUUsS0FBSztJQUNsQixZQUFZLEVBQUUsd0JBQXdCO0lBQ3RDLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxVQUFVLEVBQUU7UUFDVixlQUFlLEVBQUUsU0FBUztRQUMxQixXQUFXLEVBQUUsWUFBWTtLQUMxQjtDQUNPLENBQUM7QUFFWCxTQUFnQixXQUFXLENBQUMsR0FBMkI7SUFDckQsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxHQUEyQjtJQUN4RCxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLDZCQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9CcmFuY2hlcywgUmVwb1VybHMgfSBmcm9tICcuLi9AdHlwZXMvY29tbW9uJztcbmltcG9ydCB7IGJ1aWxkQ29uZmlnIH0gZnJvbSAnLi9pbml0QnVpbGRDb25maWcnO1xuXG5jb25zdCByZXBvUGF0aHM6IFJlcG9VcmxzID0ge1xuICBhY2NvdW50OiAnZ2xpY29naC9oZWFsdGhjYXJlLW1pY3Jvc2VydmljZS1hY2NvdW50LmdpdCcsXG4gIHBsYW46ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLXBsYW4uZ2l0JyxcbiAgcG9saWN5OiAnZ2xpY29naC9oZWFsdGhjYXJlLW1pY3Jvc2VydmljZS1wb2xpY3kuZ2l0JyxcbiAgY2xhaW1zOiAnZ2xpY29naC9oZWFsdGhjYXJlLW1pY3Jvc2VydmljZS1jbGFpbXMuZ2l0JyxcbiAgcmVwb3J0aW5nOiAnZ2xpY29naC9oZWFsdGhjYXJlLW1pY3Jvc2VydmljZS1yZXBvcnRpbmcuZ2l0JyxcbiAgbm90aWZpY2F0aW9uOiAnZ2xpY29naC9oZWFsdGhjYXJlLW1pY3Jvc2VydmljZS1ub3RpZmljYXRpb24uZ2l0JyxcbiAgJ2FwaS1nYXRld2F5JzogJ2dsaWNvZ2gvaGVhbHRoY2FyZS1hcGktZ2F0ZXdheS5naXQnLFxuICBwb3J0YWw6ICdnbGljb2doL2hlYWx0aGNhcmUtcG9ydGFsLmdpdCcsXG59O1xuXG5jb25zdCByZXBvQnJhbmNoZXM6IFJlcG9CcmFuY2hlcyA9IHtcbiAgdWF0OiAnbWFzdGVyJyxcbiAgcHJvZDogJ3JlbGVhc2UnLFxufTtcblxuY29uc3QgQ09OU1RBTlRTID0ge1xuICB2cGNJZDogJ01pY3Jvc2VydmljZS1WUEMnLFxuICBhcGlHYXRld2F5U2VjdXJpdHlHcm91cElkOiAnQVBJLUdhdGV3YXktU0cnLFxuICBwb3J0YWxTZWN1cml0eUdyb3VwSWQ6ICdQb3J0YWwtU0cnLFxuICByZWRpc1NlY3VyaXR5R3JvdXBJZDogJ1JlZGlzLVNHJyxcbiAgbGFyYXZlbEJhc2VkU2VjdXJpdHlHcm91cElkOiAnTGFyYXZlbC1CYXNlZC1TRycsXG4gIG5vdGlmaWNhdGlvblNlcnZpY2VTZWN1cml0eUdyb3VwSWQ6ICdOb3RpZmljYXRpb24tU2VydmljZS1TRycsXG4gIG15c3FsU2VjdXJpdHlHcm91cElkOiAnTXlTUUwtU0cnLFxuICBlYzJJbnN0YW5jZUNvbm5lY3RFbmRwb2ludElkOiAnSW5zdGFuY2UtQ29ubmVjdC1FbmRwb2ludCcsXG4gIGVjMkluc3RhbmNlQ29ubmVjdEVuZHBvaW50U2VjdXJpdHlHcm91cElkOiAnSW5zdGFuY2UtQ29ubmVjdC1FbmRwb2ludC1TRycsXG4gIGRlZmF1bHRJbWFnZUFtaTogJ2FtaS0wZTE4MmJjMWMzMmJhMDNjMycsIC8vIEFSTSBiYXNlZFxuICBkZWZhdWx0SW5zdGFuY2VTaXplOiAndDRnLm5hbm8nLCAvLyBBUk0gYmFzZWRcbiAgZGVmYXVsdFN0b3JhZ2VTaXplOiA4LFxuICBkZWZhdWx0U3RvcmFnZVR5cGU6ICdncDMnLFxuICBrZXlQYWlyTmFtZTogJ2lzYScsXG4gIGJhc2VSb2xlTmFtZTogJ0VDMi1JbnN0YW5jZS1CYXNlLVJvbGUnLFxuICBwdWJsaWNCdWNrZXROYW1lOiAnZ2xpY29naC1oZWFsdGhjYXJlLWZpbGVzJyxcbiAgZGVwbG95bWVudDoge1xuICAgIGdpdGh1YlJlcG9QYXRoczogcmVwb1BhdGhzLFxuICAgIGdpdEJyYW5jaGVzOiByZXBvQnJhbmNoZXMsXG4gIH0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uc3RhbnQoa2V5OiBrZXlvZiB0eXBlb2YgQ09OU1RBTlRTKSB7XG4gIHJldHVybiBDT05TVEFOVFNba2V5XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudkNvbnN0YW50KGtleToga2V5b2YgdHlwZW9mIENPTlNUQU5UUykge1xuICByZXR1cm4gYCR7Z2V0Q29uc3RhbnQoa2V5KX0tJHtidWlsZENvbmZpZz8uZW52TmFtZX1gO1xufVxuIl19
|
|
@@ -11,7 +11,7 @@ function getEc2UserData(service) {
|
|
|
11
11
|
const beforeAllScript = (0, fs_1.readFileSync)(__dirname + '/../scripts/post-deployment-before-all.sh', 'utf8');
|
|
12
12
|
const afterAllScript = (0, fs_1.readFileSync)(__dirname + '/../scripts/post-deployment-after-all.sh', 'utf8');
|
|
13
13
|
const cloneRepoScript = (0, fs_1.readFileSync)(__dirname + '/../scripts/post-deployment-clone-repo.sh', 'utf8');
|
|
14
|
-
const serviceScriptName =
|
|
14
|
+
const serviceScriptName = (0, isMicroservice_1.isMicroservice)(service) ? `${serviceName}-service` : service;
|
|
15
15
|
const groupScriptName = (0, isLaravelBased_1.isLaravelBased)() ? 'laravel-based' : null;
|
|
16
16
|
const serviceScriptPath = __dirname + `/../scripts/post-deployment-${serviceScriptName}.sh`;
|
|
17
17
|
const serviceScript = serviceScriptName && (0, fs_1.existsSync)(serviceScriptPath) ? (0, fs_1.readFileSync)(serviceScriptPath, 'utf8') : '';
|
|
@@ -19,7 +19,7 @@ function getEc2UserData(service) {
|
|
|
19
19
|
const groupScript = groupScriptName && (0, fs_1.existsSync)(groupScriptPath) ? (0, fs_1.readFileSync)(groupScriptPath, 'utf8') : '';
|
|
20
20
|
const scripts = [
|
|
21
21
|
beforeAllScript,
|
|
22
|
-
...((0, isMicroservice_1.isMicroservice)() || serviceName === 'api-gateway' || serviceName === 'portal' ? [cloneRepoScript] : []),
|
|
22
|
+
...((0, isMicroservice_1.isMicroservice)(service) || serviceName === 'api-gateway' || serviceName === 'portal' ? [cloneRepoScript] : []),
|
|
23
23
|
groupScript,
|
|
24
24
|
serviceScript,
|
|
25
25
|
afterAllScript,
|
|
@@ -46,4 +46,4 @@ function getGitDeploymentBranch(env) {
|
|
|
46
46
|
return branches[env];
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RWMyVXNlckRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlsL2dldEVjMlVzZXJEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esd0NBa0NDO0FBekNELDJCQUE4QztBQUU5Qyx1REFBZ0Q7QUFDaEQscURBQWtEO0FBQ2xELHFEQUFrRDtBQUNsRCwyQ0FBMEM7QUFFMUMsU0FBZ0IsY0FBYyxDQUFDLE9BQW9DO0lBQ2pFLE1BQU0sV0FBVyxHQUFHLE9BQU8sSUFBSSw2QkFBVyxFQUFFLFdBQVcsQ0FBQztJQUV4RCxNQUFNLGVBQWUsR0FBRyxJQUFBLGlCQUFZLEVBQUMsU0FBUyxHQUFHLDJDQUEyQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXRHLE1BQU0sY0FBYyxHQUFHLElBQUEsaUJBQVksRUFBQyxTQUFTLEdBQUcsMENBQTBDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFcEcsTUFBTSxlQUFlLEdBQUcsSUFBQSxpQkFBWSxFQUFDLFNBQVMsR0FBRywyQ0FBMkMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0RyxNQUFNLGlCQUFpQixHQUFHLElBQUEsK0JBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBRXZGLE1BQU0sZUFBZSxHQUFHLElBQUEsK0JBQWMsR0FBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVsRSxNQUFNLGlCQUFpQixHQUFHLFNBQVMsR0FBRywrQkFBK0IsaUJBQWlCLEtBQUssQ0FBQztJQUM1RixNQUFNLGFBQWEsR0FBRyxpQkFBaUIsSUFBSSxJQUFBLGVBQVUsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGlCQUFZLEVBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUV4SCxNQUFNLGVBQWUsR0FBRyxTQUFTLEdBQUcsK0JBQStCLGVBQWUsS0FBSyxDQUFDO0lBQ3hGLE1BQU0sV0FBVyxHQUFHLGVBQWUsSUFBSSxJQUFBLGVBQVUsRUFBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxpQkFBWSxFQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRWhILE1BQU0sT0FBTyxHQUFHO1FBQ2QsZUFBZTtRQUNmLEdBQUcsQ0FBQyxJQUFBLCtCQUFjLEVBQUMsT0FBTyxDQUFDLElBQUksV0FBVyxLQUFLLGFBQWEsSUFBSSxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEgsV0FBVztRQUNYLGFBQWE7UUFDYixjQUFjO0tBQ2YsQ0FBQztJQUVGLE1BQU0sTUFBTSxHQUFHLE9BQU87U0FDbkIsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNWLE9BQU8sQ0FBQyxjQUFjLEVBQUUsNkJBQVcsRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDO1NBQ3RELE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1NBQzlDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDcEUsT0FBTyxDQUFDLDBCQUEwQixFQUFFLHNCQUFzQixDQUFDLDZCQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUM7SUFDbEcsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBZ0I7SUFDekMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSx1QkFBVyxFQUFDLFlBQVksQ0FBNEIsQ0FBQztRQUM5RSxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxlQUF5QyxDQUFDO1FBQ3pFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxHQUE0QjtJQUMxRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLHVCQUFXLEVBQUMsWUFBWSxDQUE0QixDQUFDO1FBQzlFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFdBQXFDLENBQUM7UUFDeEUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBCdWlsZENvbmZpZyB9IGZyb20gJy4uL0B0eXBlcy9jb21tb24nO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBpc01pY3Jvc2VydmljZSB9IGZyb20gJy4vaXNNaWNyb3NlcnZpY2UnO1xuaW1wb3J0IHsgaXNMYXJhdmVsQmFzZWQgfSBmcm9tICcuL2lzTGFyYXZlbEJhc2VkJztcbmltcG9ydCB7IGdldENvbnN0YW50IH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWMyVXNlckRhdGEoc2VydmljZT86IEJ1aWxkQ29uZmlnWydzZXJ2aWNlTmFtZSddKTogc3RyaW5nIHtcbiAgY29uc3Qgc2VydmljZU5hbWUgPSBzZXJ2aWNlID8/IGJ1aWxkQ29uZmlnPy5zZXJ2aWNlTmFtZTtcblxuICBjb25zdCBiZWZvcmVBbGxTY3JpcHQgPSByZWFkRmlsZVN5bmMoX19kaXJuYW1lICsgJy8uLi9zY3JpcHRzL3Bvc3QtZGVwbG95bWVudC1iZWZvcmUtYWxsLnNoJywgJ3V0ZjgnKTtcblxuICBjb25zdCBhZnRlckFsbFNjcmlwdCA9IHJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAnLy4uL3NjcmlwdHMvcG9zdC1kZXBsb3ltZW50LWFmdGVyLWFsbC5zaCcsICd1dGY4Jyk7XG5cbiAgY29uc3QgY2xvbmVSZXBvU2NyaXB0ID0gcmVhZEZpbGVTeW5jKF9fZGlybmFtZSArICcvLi4vc2NyaXB0cy9wb3N0LWRlcGxveW1lbnQtY2xvbmUtcmVwby5zaCcsICd1dGY4Jyk7XG5cbiAgY29uc3Qgc2VydmljZVNjcmlwdE5hbWUgPSBpc01pY3Jvc2VydmljZShzZXJ2aWNlKSA/IGAke3NlcnZpY2VOYW1lfS1zZXJ2aWNlYCA6IHNlcnZpY2U7XG5cbiAgY29uc3QgZ3JvdXBTY3JpcHROYW1lID0gaXNMYXJhdmVsQmFzZWQoKSA/ICdsYXJhdmVsLWJhc2VkJyA6IG51bGw7XG5cbiAgY29uc3Qgc2VydmljZVNjcmlwdFBhdGggPSBfX2Rpcm5hbWUgKyBgLy4uL3NjcmlwdHMvcG9zdC1kZXBsb3ltZW50LSR7c2VydmljZVNjcmlwdE5hbWV9LnNoYDtcbiAgY29uc3Qgc2VydmljZVNjcmlwdCA9IHNlcnZpY2VTY3JpcHROYW1lICYmIGV4aXN0c1N5bmMoc2VydmljZVNjcmlwdFBhdGgpID8gcmVhZEZpbGVTeW5jKHNlcnZpY2VTY3JpcHRQYXRoLCAndXRmOCcpIDogJyc7XG5cbiAgY29uc3QgZ3JvdXBTY3JpcHRQYXRoID0gX19kaXJuYW1lICsgYC8uLi9zY3JpcHRzL3Bvc3QtZGVwbG95bWVudC0ke2dyb3VwU2NyaXB0TmFtZX0uc2hgO1xuICBjb25zdCBncm91cFNjcmlwdCA9IGdyb3VwU2NyaXB0TmFtZSAmJiBleGlzdHNTeW5jKGdyb3VwU2NyaXB0UGF0aCkgPyByZWFkRmlsZVN5bmMoZ3JvdXBTY3JpcHRQYXRoLCAndXRmOCcpIDogJyc7XG5cbiAgY29uc3Qgc2NyaXB0cyA9IFtcbiAgICBiZWZvcmVBbGxTY3JpcHQsXG4gICAgLi4uKGlzTWljcm9zZXJ2aWNlKHNlcnZpY2UpIHx8IHNlcnZpY2VOYW1lID09PSAnYXBpLWdhdGV3YXknIHx8IHNlcnZpY2VOYW1lID09PSAncG9ydGFsJyA/IFtjbG9uZVJlcG9TY3JpcHRdIDogW10pLFxuICAgIGdyb3VwU2NyaXB0LFxuICAgIHNlcnZpY2VTY3JpcHQsXG4gICAgYWZ0ZXJBbGxTY3JpcHQsXG4gIF07XG5cbiAgY29uc3Qgb3V0cHV0ID0gc2NyaXB0c1xuICAgIC5qb2luKGBcXG5gKVxuICAgIC5yZXBsYWNlKC97e2Vudk5hbWV9fS9nLCBidWlsZENvbmZpZz8uZW52TmFtZSA/PyAndWF0JylcbiAgICAucmVwbGFjZSgve3tzZXJ2aWNlTmFtZX19L2csIHNlcnZpY2VOYW1lID8/ICcnKVxuICAgIC5yZXBsYWNlKC97e2dpdGh1YlJlcG9QYXRofX0vZywgZ2V0R2l0aHViUmVwb1BhdGgoc2VydmljZU5hbWUpID8/ICcnKVxuICAgIC5yZXBsYWNlKC97e2dpdERlcGxveW1lbnRCcmFuY2h9fS9nLCBnZXRHaXREZXBsb3ltZW50QnJhbmNoKGJ1aWxkQ29uZmlnPy5lbnZOYW1lKSA/PyAncmVsZWFzZScpO1xuICByZXR1cm4gb3V0cHV0O1xufVxuXG5mdW5jdGlvbiBnZXRHaXRodWJSZXBvUGF0aChzZXJ2aWNlPzogc3RyaW5nKTogc3RyaW5nIHwgdm9pZCB7XG4gIGlmIChzZXJ2aWNlKSB7XG4gICAgY29uc3QgZGVwbG95bWVudENvbmZpZyA9IGdldENvbnN0YW50KCdkZXBsb3ltZW50JykgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgY29uc3QgcGF0aHMgPSBkZXBsb3ltZW50Q29uZmlnLmdpdGh1YlJlcG9QYXRocyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHJldHVybiBwYXRoc1tzZXJ2aWNlXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRHaXREZXBsb3ltZW50QnJhbmNoKGVudj86IEJ1aWxkQ29uZmlnWydlbnZOYW1lJ10pOiBzdHJpbmcgfCB2b2lkIHtcbiAgaWYgKGVudikge1xuICAgIGNvbnN0IGRlcGxveW1lbnRDb25maWcgPSBnZXRDb25zdGFudCgnZGVwbG95bWVudCcpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IGJyYW5jaGVzID0gZGVwbG95bWVudENvbmZpZy5naXRCcmFuY2hlcyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHJldHVybiBicmFuY2hlc1tlbnZdO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BlockDevice } from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import { BuildConfig } from '../@types/common';
|
|
3
|
+
type GetInstanceRootStorageReturn = BlockDevice[];
|
|
4
|
+
export declare function getInstanceStorage(key?: BuildConfig['serviceName']): GetInstanceRootStorageReturn | undefined;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInstanceStorage = getInstanceStorage;
|
|
4
|
+
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
5
|
+
const initBuildConfig_1 = require("./initBuildConfig");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const isMicroservice_1 = require("./isMicroservice");
|
|
8
|
+
function getInstanceStorage(key) {
|
|
9
|
+
const service = key ?? initBuildConfig_1.buildConfig?.serviceName;
|
|
10
|
+
if (!service) {
|
|
11
|
+
throw new Error('Service not defined');
|
|
12
|
+
}
|
|
13
|
+
const storageList = [];
|
|
14
|
+
const rootStorage = getRootStorage(service);
|
|
15
|
+
if (rootStorage) {
|
|
16
|
+
storageList.push(rootStorage);
|
|
17
|
+
}
|
|
18
|
+
if (storageList.length) {
|
|
19
|
+
return storageList;
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
function getRootStorage(service) {
|
|
24
|
+
const envVarForSize = `ec2_${service}${(0, isMicroservice_1.isMicroservice)(service) ? '_service' : ''}_instance_storage_size`;
|
|
25
|
+
const envVarForType = `ec2_${service}${(0, isMicroservice_1.isMicroservice)(service) ? '_service' : ''}_instance_storage_type`;
|
|
26
|
+
const valForSize = Number(process.env[envVarForSize.toUpperCase()] ?? (0, constants_1.getConstant)('defaultStorageSize'));
|
|
27
|
+
const valForType = process.env[envVarForType.toUpperCase()] ?? (0, constants_1.getConstant)('defaultStorageType');
|
|
28
|
+
if (valForSize && valForType && !(valForSize === 8 && valForType === 'gp3') && !isNaN(valForSize)) {
|
|
29
|
+
const storage = {
|
|
30
|
+
name: '/dev/sda1',
|
|
31
|
+
size: Number(valForSize),
|
|
32
|
+
type: valForType,
|
|
33
|
+
};
|
|
34
|
+
return { deviceName: storage.name, volume: aws_ec2_1.BlockDeviceVolume.ebs(storage.size, { volumeType: storage.type }) };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0SW5zdGFuY2VTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbC9nZXRJbnN0YW5jZVN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxnREFnQkM7QUF4QkQsaURBQTBGO0FBQzFGLHVEQUFnRDtBQUNoRCwyQ0FBMEM7QUFDMUMscURBQWtEO0FBS2xELFNBQWdCLGtCQUFrQixDQUFDLEdBQWdDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLEdBQUcsSUFBSSw2QkFBVyxFQUFFLFdBQVcsQ0FBQztJQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFrQixFQUFFLENBQUM7SUFDdEMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU87QUFDVCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsT0FBZTtJQUNyQyxNQUFNLGFBQWEsR0FBRyxPQUFPLE9BQU8sR0FBRyxJQUFBLCtCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSx3QkFBd0IsQ0FBQztJQUN6RyxNQUFNLGFBQWEsR0FBRyxPQUFPLE9BQU8sR0FBRyxJQUFBLCtCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSx3QkFBd0IsQ0FBQztJQUV6RyxNQUFNLFVBQVUsR0FBVyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFBLHVCQUFXLEVBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ2pILE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksSUFBQSx1QkFBVyxFQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDakcsSUFBSSxVQUFVLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ2xHLE1BQU0sT0FBTyxHQUFvQjtZQUMvQixJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN4QixJQUFJLEVBQUUsVUFBaUM7U0FDeEMsQ0FBQztRQUNGLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsMkJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNqSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJsb2NrRGV2aWNlLCBCbG9ja0RldmljZVZvbHVtZSwgRWJzRGV2aWNlVm9sdW1lVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBnZXRDb25zdGFudCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGlzTWljcm9zZXJ2aWNlIH0gZnJvbSAnLi9pc01pY3Jvc2VydmljZSc7XG5pbXBvcnQgeyBCdWlsZENvbmZpZyB9IGZyb20gJy4uL0B0eXBlcy9jb21tb24nO1xuXG50eXBlIEdldEluc3RhbmNlUm9vdFN0b3JhZ2VSZXR1cm4gPSBCbG9ja0RldmljZVtdO1xudHlwZSBJbnN0YW5jZVN0b3JhZ2UgPSB7IG5hbWU6IHN0cmluZzsgc2l6ZTogbnVtYmVyOyB0eXBlOiBFYnNEZXZpY2VWb2x1bWVUeXBlIH07XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5zdGFuY2VTdG9yYWdlKGtleT86IEJ1aWxkQ29uZmlnWydzZXJ2aWNlTmFtZSddKTogR2V0SW5zdGFuY2VSb290U3RvcmFnZVJldHVybiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHNlcnZpY2UgPSBrZXkgPz8gYnVpbGRDb25maWc/LnNlcnZpY2VOYW1lO1xuICBpZiAoIXNlcnZpY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlcnZpY2Ugbm90IGRlZmluZWQnKTtcbiAgfVxuXG4gIGNvbnN0IHN0b3JhZ2VMaXN0OiBCbG9ja0RldmljZVtdID0gW107XG4gIGNvbnN0IHJvb3RTdG9yYWdlID0gZ2V0Um9vdFN0b3JhZ2Uoc2VydmljZSk7XG4gIGlmIChyb290U3RvcmFnZSkge1xuICAgIHN0b3JhZ2VMaXN0LnB1c2gocm9vdFN0b3JhZ2UpO1xuICB9XG5cbiAgaWYgKHN0b3JhZ2VMaXN0Lmxlbmd0aCkge1xuICAgIHJldHVybiBzdG9yYWdlTGlzdDtcbiAgfVxuICByZXR1cm47XG59XG5cbmZ1bmN0aW9uIGdldFJvb3RTdG9yYWdlKHNlcnZpY2U6IHN0cmluZyk6IEJsb2NrRGV2aWNlIHwgdm9pZCB7XG4gIGNvbnN0IGVudlZhckZvclNpemUgPSBgZWMyXyR7c2VydmljZX0ke2lzTWljcm9zZXJ2aWNlKHNlcnZpY2UpID8gJ19zZXJ2aWNlJyA6ICcnfV9pbnN0YW5jZV9zdG9yYWdlX3NpemVgO1xuICBjb25zdCBlbnZWYXJGb3JUeXBlID0gYGVjMl8ke3NlcnZpY2V9JHtpc01pY3Jvc2VydmljZShzZXJ2aWNlKSA/ICdfc2VydmljZScgOiAnJ31faW5zdGFuY2Vfc3RvcmFnZV90eXBlYDtcblxuICBjb25zdCB2YWxGb3JTaXplOiBudW1iZXIgPSBOdW1iZXIocHJvY2Vzcy5lbnZbZW52VmFyRm9yU2l6ZS50b1VwcGVyQ2FzZSgpXSA/PyBnZXRDb25zdGFudCgnZGVmYXVsdFN0b3JhZ2VTaXplJykpO1xuICBjb25zdCB2YWxGb3JUeXBlID0gcHJvY2Vzcy5lbnZbZW52VmFyRm9yVHlwZS50b1VwcGVyQ2FzZSgpXSA/PyBnZXRDb25zdGFudCgnZGVmYXVsdFN0b3JhZ2VUeXBlJyk7XG4gIGlmICh2YWxGb3JTaXplICYmIHZhbEZvclR5cGUgJiYgISh2YWxGb3JTaXplID09PSA4ICYmIHZhbEZvclR5cGUgPT09ICdncDMnKSAmJiAhaXNOYU4odmFsRm9yU2l6ZSkpIHtcbiAgICBjb25zdCBzdG9yYWdlOiBJbnN0YW5jZVN0b3JhZ2UgPSB7XG4gICAgICBuYW1lOiAnL2Rldi9zZGExJyxcbiAgICAgIHNpemU6IE51bWJlcih2YWxGb3JTaXplKSxcbiAgICAgIHR5cGU6IHZhbEZvclR5cGUgYXMgRWJzRGV2aWNlVm9sdW1lVHlwZSxcbiAgICB9O1xuICAgIHJldHVybiB7IGRldmljZU5hbWU6IHN0b3JhZ2UubmFtZSwgdm9sdW1lOiBCbG9ja0RldmljZVZvbHVtZS5lYnMoc3RvcmFnZS5zaXplLCB7IHZvbHVtZVR5cGU6IHN0b3JhZ2UudHlwZSB9KSB9O1xuICB9XG59XG4iXX0=
|
|
@@ -13,6 +13,7 @@ const microservice_notification_service_1 = require("../lib/microservice-notific
|
|
|
13
13
|
const isLaravelBased_1 = require("./isLaravelBased");
|
|
14
14
|
const microservice_mysql_1 = require("../lib/microservice-mysql");
|
|
15
15
|
const microservice_portal_1 = require("../lib/microservice-portal");
|
|
16
|
+
const microservice_infra_auth_1 = require("../lib/microservice-infra-auth");
|
|
16
17
|
function initCdkStack() {
|
|
17
18
|
const app = new cdk.App();
|
|
18
19
|
const buildConfig = (0, initBuildConfig_1.initBuildConfig)(app);
|
|
@@ -41,6 +42,9 @@ function initCdkStack() {
|
|
|
41
42
|
new microservice_network_1.MicroserviceNetwork(app, 'MicroserviceNetwork', {
|
|
42
43
|
env: buildConfig.aws,
|
|
43
44
|
});
|
|
45
|
+
new microservice_infra_auth_1.MicroserviceInfraAuth(app, 'MicroserviceInfraAuth', {
|
|
46
|
+
env: buildConfig.aws,
|
|
47
|
+
});
|
|
44
48
|
new microservice_portal_1.MicroservicePortal(app, `MicroservicePortal${buildConfig.buildId ? '-' + buildConfig.buildId : ''}`, {
|
|
45
49
|
env: buildConfig.aws,
|
|
46
50
|
});
|
|
@@ -55,4 +59,4 @@ function initCdkStack() {
|
|
|
55
59
|
});
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdENka1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbC9pbml0Q2RrU3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxvQ0E4Q0M7QUE1REQsdUNBQXFDO0FBQ3JDLG1DQUFtQztBQUNuQyx1REFBb0Q7QUFDcEQsMkNBQXdDO0FBQ3hDLGtGQUE2RTtBQUM3RSxzRUFBa0U7QUFDbEUsOEVBQXlFO0FBQ3pFLGtFQUE4RDtBQUM5RCxnR0FBMkY7QUFDM0YscURBQWtEO0FBQ2xELGtFQUE4RDtBQUM5RCxvRUFBZ0U7QUFDaEUsNEVBQXVFO0FBRXZFLFNBQWdCLFlBQVk7SUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBQSxpQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLElBQUEscUJBQVMsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUVmLElBQUksSUFBQSwrQkFBYyxHQUFFLEVBQUUsQ0FBQztRQUNyQixJQUFJLHFEQUF3QixDQUFDLEdBQUcsRUFBRSw0QkFBNEIsV0FBVyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUcsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1lBQ3BCOzs2RUFFaUU7WUFFakU7K0VBQ21FO1lBQ25FLDZGQUE2RjtZQUU3Rjs4Q0FDa0M7WUFDbEMseURBQXlEO1lBRXpELDhGQUE4RjtTQUMvRixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sSUFBSSxXQUFXLENBQUMsV0FBVyxLQUFLLGNBQWMsRUFBRSxDQUFDO1FBQ3RELElBQUksbUVBQStCLENBQUMsR0FBRyxFQUFFLG1DQUFtQyxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDakcsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSwwQ0FBbUIsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLEVBQUU7WUFDbEQsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1NBQ3JCLENBQUMsQ0FBQztRQUNILElBQUksK0NBQXFCLENBQUMsR0FBRyxFQUFFLHVCQUF1QixFQUFFO1lBQ3RELEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLHdDQUFrQixDQUFDLEdBQUcsRUFBRSxxQkFBcUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3ZHLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLGlEQUFzQixDQUFDLEdBQUcsRUFBRSx5QkFBeUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQy9HLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLHNDQUFpQixDQUFDLEdBQUcsRUFBRSxvQkFBb0IsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3JHLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLHNDQUFpQixDQUFDLEdBQUcsRUFBRSxvQkFBb0IsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3JHLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBpbml0QnVpbGRDb25maWcgfSBmcm9tICcuL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBhcHBseVRhZ3MgfSBmcm9tICcuL2FwcGx5VGFncyc7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VMYXJhdmVsQmFzZWQgfSBmcm9tICcuLi9saWIvbWljcm9zZXJ2aWNlLWxhcmF2ZWwtYmFzZWQnO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlTmV0d29yayB9IGZyb20gJy4uL2xpYi9taWNyb3NlcnZpY2UtbmV0d29yayc7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VBcGlHYXRld2F5IH0gZnJvbSAnLi4vbGliL21pY3Jvc2VydmljZS1hcGktZ2F0ZXdheSc7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VSZWRpcyB9IGZyb20gJy4uL2xpYi9taWNyb3NlcnZpY2UtcmVkaXMnO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2xpYi9taWNyb3NlcnZpY2Utbm90aWZpY2F0aW9uLXNlcnZpY2UnO1xuaW1wb3J0IHsgaXNMYXJhdmVsQmFzZWQgfSBmcm9tICcuL2lzTGFyYXZlbEJhc2VkJztcbmltcG9ydCB7IE1pY3Jvc2VydmljZU15U3FsIH0gZnJvbSAnLi4vbGliL21pY3Jvc2VydmljZS1teXNxbCc7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VQb3J0YWwgfSBmcm9tICcuLi9saWIvbWljcm9zZXJ2aWNlLXBvcnRhbCc7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VJbmZyYUF1dGggfSBmcm9tICcuLi9saWIvbWljcm9zZXJ2aWNlLWluZnJhLWF1dGgnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5pdENka1N0YWNrKCkge1xuICBjb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuICBjb25zdCBidWlsZENvbmZpZyA9IGluaXRCdWlsZENvbmZpZyhhcHApO1xuICBhcHBseVRhZ3MoYXBwKTtcblxuICBpZiAoaXNMYXJhdmVsQmFzZWQoKSkge1xuICAgIG5ldyBNaWNyb3NlcnZpY2VMYXJhdmVsQmFzZWQoYXBwLCBgTWljcm9zZXJ2aWNlTGFyYXZlbEJhc2VkLSR7YnVpbGRDb25maWcuc2VydmljZU5hbWV9LSR7YnVpbGRDb25maWcuYnVpbGRJZH1gLCB7XG4gICAgICBlbnY6IGJ1aWxkQ29uZmlnLmF3cyxcbiAgICAgIC8qIElmIHlvdSBkb24ndCBzcGVjaWZ5ICdlbnYnLCB0aGlzIHN0YWNrIHdpbGwgYmUgZW52aXJvbm1lbnQtYWdub3N0aWMuXG4gICAgICAgKiBBY2NvdW50L1JlZ2lvbi1kZXBlbmRlbnQgZmVhdHVyZXMgYW5kIGNvbnRleHQgbG9va3VwcyB3aWxsIG5vdCB3b3JrLFxuICAgICAgICogYnV0IGEgc2luZ2xlIHN5bnRoZXNpemVkIHRlbXBsYXRlIGNhbiBiZSBkZXBsb3llZCBhbnl3aGVyZS4gKi9cblxuICAgICAgLyogVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gc3BlY2lhbGl6ZSB0aGlzIHN0YWNrIGZvciB0aGUgQVdTIEFjY291bnRcbiAgICAgICAqIGFuZCBSZWdpb24gdGhhdCBhcmUgaW1wbGllZCBieSB0aGUgY3VycmVudCBDTEkgY29uZmlndXJhdGlvbi4gKi9cbiAgICAgIC8vIGVudjogeyBhY2NvdW50OiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5ULCByZWdpb246IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTiB9LFxuXG4gICAgICAvKiBVbmNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3Uga25vdyBleGFjdGx5IHdoYXQgQWNjb3VudCBhbmQgUmVnaW9uIHlvdVxuICAgICAgICogd2FudCB0byBkZXBsb3kgdGhlIHN0YWNrIHRvLiAqL1xuICAgICAgLy8gZW52OiB7IGFjY291bnQ6ICcxMjM0NTY3ODkwMTInLCByZWdpb246ICd1cy1lYXN0LTEnIH0sXG5cbiAgICAgIC8qIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvZW52aXJvbm1lbnRzLmh0bWwgKi9cbiAgICB9KTtcbiAgfSBlbHNlIGlmIChidWlsZENvbmZpZy5zZXJ2aWNlTmFtZSA9PT0gJ25vdGlmaWNhdGlvbicpIHtcbiAgICBuZXcgTWljcm9zZXJ2aWNlTm90aWZpY2F0aW9uU2VydmljZShhcHAsIGBNaWNyb3NlcnZpY2VOb3RpZmljYXRpb25TZXJ2aWNlLSR7YnVpbGRDb25maWcuYnVpbGRJZH1gLCB7XG4gICAgICBlbnY6IGJ1aWxkQ29uZmlnLmF3cyxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBuZXcgTWljcm9zZXJ2aWNlTmV0d29yayhhcHAsICdNaWNyb3NlcnZpY2VOZXR3b3JrJywge1xuICAgICAgZW52OiBidWlsZENvbmZpZy5hd3MsXG4gICAgfSk7XG4gICAgbmV3IE1pY3Jvc2VydmljZUluZnJhQXV0aChhcHAsICdNaWNyb3NlcnZpY2VJbmZyYUF1dGgnLCB7XG4gICAgICBlbnY6IGJ1aWxkQ29uZmlnLmF3cyxcbiAgICB9KTtcbiAgICBuZXcgTWljcm9zZXJ2aWNlUG9ydGFsKGFwcCwgYE1pY3Jvc2VydmljZVBvcnRhbCR7YnVpbGRDb25maWcuYnVpbGRJZCA/ICctJyArIGJ1aWxkQ29uZmlnLmJ1aWxkSWQgOiAnJ31gLCB7XG4gICAgICBlbnY6IGJ1aWxkQ29uZmlnLmF3cyxcbiAgICB9KTtcbiAgICBuZXcgTWljcm9zZXJ2aWNlQXBpR2F0ZXdheShhcHAsIGBNaWNyb3NlcnZpY2VBcGlHYXRld2F5JHtidWlsZENvbmZpZy5idWlsZElkID8gJy0nICsgYnVpbGRDb25maWcuYnVpbGRJZCA6ICcnfWAsIHtcbiAgICAgIGVudjogYnVpbGRDb25maWcuYXdzLFxuICAgIH0pO1xuICAgIG5ldyBNaWNyb3NlcnZpY2VSZWRpcyhhcHAsIGBNaWNyb3NlcnZpY2VSZWRpcyR7YnVpbGRDb25maWcuYnVpbGRJZCA/ICctJyArIGJ1aWxkQ29uZmlnLmJ1aWxkSWQgOiAnJ31gLCB7XG4gICAgICBlbnY6IGJ1aWxkQ29uZmlnLmF3cyxcbiAgICB9KTtcbiAgICBuZXcgTWljcm9zZXJ2aWNlTXlTcWwoYXBwLCBgTWljcm9zZXJ2aWNlTXlTUUwke2J1aWxkQ29uZmlnLmJ1aWxkSWQgPyAnLScgKyBidWlsZENvbmZpZy5idWlsZElkIDogJyd9YCwge1xuICAgICAgZW52OiBidWlsZENvbmZpZy5hd3MsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# install nginx
|
|
2
|
-
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -
|
|
2
|
+
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -yq
|
|
3
3
|
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
|
|
4
4
|
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
|
|
5
5
|
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
|
|
6
6
|
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
|
|
7
|
-
sudo apt update -
|
|
8
|
-
sudo apt install nginx nodejs dnsmasq supervisor -
|
|
7
|
+
sudo apt update -yq
|
|
8
|
+
sudo apt install nginx nodejs dnsmasq supervisor -yq
|
|
9
9
|
|
|
10
10
|
# copy appropriate server_name.conf based on env
|
|
11
11
|
cat $service_dir/nginx/microservices/server_name.{{envName}}.conf | sudo tee $service_dir/nginx/microservices/server_name.conf
|
|
@@ -31,15 +31,15 @@ cd $microservices_dir
|
|
|
31
31
|
exec &>>"$deployment_log_file"
|
|
32
32
|
|
|
33
33
|
# update and install packages
|
|
34
|
-
sudo apt update -
|
|
35
|
-
sudo apt install curl zip unzip -
|
|
34
|
+
sudo apt update -yq
|
|
35
|
+
sudo apt install curl zip unzip -yq
|
|
36
36
|
|
|
37
37
|
# remove redundant packages
|
|
38
|
-
sudo apt remove apache2 -
|
|
38
|
+
sudo apt remove apache2 -yq
|
|
39
39
|
|
|
40
40
|
# install AWS CLI
|
|
41
41
|
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
|
|
42
|
-
unzip -
|
|
42
|
+
unzip -oq awscliv2.zip
|
|
43
43
|
sudo ./aws/install --update
|
|
44
44
|
sudo rm -rf awscliv2.zip aws
|
|
45
45
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# install packages required for PHP/Laravel
|
|
2
|
-
sudo apt install curl gpg software-properties-common ca-certificates apt-transport-https lsb-release -
|
|
2
|
+
sudo apt install curl gpg software-properties-common ca-certificates apt-transport-https lsb-release -yq
|
|
3
3
|
sudo add-apt-repository ppa:ondrej/php -y
|
|
4
|
-
sudo apt install php8.3 supervisor -
|
|
5
|
-
sudo apt install php8.3-cli php8.3-pdo php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-common php8.3-dev php8.3-redis php8.3-swoole -
|
|
4
|
+
sudo apt install php8.3 supervisor -yq
|
|
5
|
+
sudo apt install php8.3-cli php8.3-pdo php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-common php8.3-dev php8.3-redis php8.3-swoole -yq
|
|
6
6
|
|
|
7
7
|
# install composer
|
|
8
8
|
sudo curl -sS https://getcomposer.org/installer | sudo php
|
|
@@ -15,6 +15,7 @@ microservice_port=8080
|
|
|
15
15
|
sudo echo "MICROSERVICE_INTERNAL_IP=\"$instance_private_ip\"" >> $configuration_dir/local.env
|
|
16
16
|
sudo echo "MICROSERVICE_INTERNAL_PORT=\"$microservice_port\"" >> $configuration_dir/local.env
|
|
17
17
|
sudo echo "DEPLOYED_ENV={{envName}}" >> $configuration_dir/local.env
|
|
18
|
+
sudo echo "HOSTING_PLATFORM=aws" >> $configuration_dir/local.env
|
|
18
19
|
sudo cat $configuration_dir/global-ssm.env >> .env
|
|
19
20
|
sudo cat $configuration_dir/service-ssm.env >> .env
|
|
20
21
|
sudo cat $configuration_dir/local.env >> .env
|
|
@@ -27,7 +28,7 @@ su - ubuntu -c "cd $service_dir && composer install --no-interaction --prefer-di
|
|
|
27
28
|
#su - ubuntu -c "cd $service_dir && composer require glicogh/healthcare-laravel-package:dev-master --no-interaction --prefer-dist --optimize-autoloader"
|
|
28
29
|
|
|
29
30
|
# remove redundant packages
|
|
30
|
-
sudo apt remove apache2 -
|
|
31
|
+
sudo apt remove apache2 -yq
|
|
31
32
|
|
|
32
33
|
# install openswoole
|
|
33
34
|
# echo '>>> Installing openswoole'
|
|
@@ -1,5 +1,28 @@
|
|
|
1
|
-
sudo
|
|
2
|
-
sudo apt install nodejs -y
|
|
1
|
+
sudo apt install nodejs npm supervisor -yq
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
microservice_port=8080
|
|
4
|
+
|
|
5
|
+
# create .env
|
|
6
|
+
sudo echo "MICROSERVICE_INTERNAL_IP=\"$instance_private_ip\"" >> $configuration_dir/local.env
|
|
7
|
+
sudo echo "MICROSERVICE_INTERNAL_PORT=\"$microservice_port\"" >> $configuration_dir/local.env
|
|
8
|
+
sudo echo "DEPLOYED_ENV={{envName}}" >> $configuration_dir/local.env
|
|
9
|
+
sudo echo "HOSTING_PLATFORM=aws" >> $configuration_dir/local.env
|
|
10
|
+
sudo cat $configuration_dir/global-ssm.env >> .env
|
|
11
|
+
sudo cat $configuration_dir/service-ssm.env >> .env
|
|
12
|
+
sudo cat $configuration_dir/local.env >> .env
|
|
13
|
+
|
|
14
|
+
cd $service_dir
|
|
15
|
+
sudo npm i
|
|
16
|
+
sudo npm run build:api
|
|
17
|
+
|
|
18
|
+
sudo ln -sf $service_dir/.env $service_dir/src/api/.env
|
|
19
|
+
sudo ln -sf $service_dir/.env $service_dir/dist/api/.env
|
|
20
|
+
|
|
21
|
+
# configure supervisor
|
|
22
|
+
sudo sed -i "s|files = .*|files = /etc/supervisor/conf.d/*.conf ${service_dir}/supervisor/conf.d/*.conf|" /etc/supervisor/supervisord.conf
|
|
23
|
+
|
|
24
|
+
# start supervisor
|
|
25
|
+
sudo systemctl restart supervisor
|
|
26
|
+
|
|
27
|
+
# service discovery
|
|
28
|
+
sudo npm run discovery:api
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# install nginx
|
|
2
|
-
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -
|
|
2
|
+
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -yq
|
|
3
3
|
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
|
|
4
4
|
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
|
|
5
5
|
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
|
|
6
6
|
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
|
|
7
|
-
sudo apt update -
|
|
8
|
-
sudo apt install nginx npm -
|
|
7
|
+
sudo apt update -yq
|
|
8
|
+
sudo apt install nginx npm -yq
|
|
9
9
|
|
|
10
10
|
# create .env
|
|
11
11
|
sudo echo "DEPLOYED_ENV={{envName}}" >> $configuration_dir/local.env
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
sudo apt install lsb-release curl gpg -
|
|
1
|
+
sudo apt install lsb-release curl gpg -yq
|
|
2
2
|
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
|
|
3
3
|
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
|
|
4
4
|
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
|
|
5
|
-
sudo apt update -
|
|
6
|
-
sudo apt install redis -
|
|
5
|
+
sudo apt update -yq
|
|
6
|
+
sudo apt install redis -yq
|
|
7
7
|
sudo sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis/redis.conf
|
|
8
8
|
sudo sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis/redis.conf
|
|
9
9
|
sudo systemctl restart redis-server
|