A set of Pulumi apps that deploy Webiny CMS into Amazon Web Services (AWS).
npm install @webiny/pulumi-aws@webiny/pulumi-aws



A set of Pulumi apps that deploy Webiny CMS into Amazon Web Services (AWS).
- Installation
- Overview
- Examples
- Reference
- Apps
- createCoreApp
- createApiApp
- createAdminApp
- createWebsiteApp
```
npm install --save @webiny/pulumi-aws
Or if you prefer yarn:
``
yarn add @webiny/pulumi-aws
A set of Pulumi apps that deploy Webiny CMS into Amazon Web Services (AWS).
> 💡 TIP
>
> Pulumi apps included in this package are automatically included in every Webiny project that's configured to be deployed into Amazon Web Services (AWS).
| Example | Description |
| --------------------------------- | --------------------------------------------------------------- |
| Initialization and Running the Apps | Shows how the included apps are initialized and run. |
#### createCoreApp
` export interface CoreAppLegacyConfig { export declare function createCoreApp(projectAppParams?: CreateCoreAppParams): import("@webiny/pulumi").PulumiApp<{Type Declaration
ts
export interface CreateCoreAppParams {
/**
* Secures against deleting database by accident.
* By default enabled in production environments.
*/
protect?: PulumiAppParam
/**
* Enables ElasticSearch infrastructure.
* Note that it requires also changes in application code.
*/
elasticSearch?: PulumiAppParam
/**
* Enables VPC for the application.
* By default enabled in production environments.
*/
vpc?: PulumiAppParam
/**
* Additional settings for backwards compatibility.
*/
legacy?: PulumiAppParam
pulumi?: (app: ReturnType
}
useEmailAsUsername?: boolean;
}
fileManagerBucket: import("@webiny/pulumi").PulumiAppResource
eventBus: import("@webiny/pulumi").PulumiAppResource
elasticSearch: {
domain: import("@webiny/pulumi").PulumiAppResource
domainPolicy: import("@webiny/pulumi").PulumiAppResource
table: import("@webiny/pulumi").PulumiAppResource
dynamoToElastic: {
role: import("@webiny/pulumi").PulumiAppResource
policy: import("@webiny/pulumi").PulumiAppResource
lambda: import("@webiny/pulumi").PulumiAppResource
eventSourceMapping: import("@webiny/pulumi").PulumiAppResource
};
} | null;
userPool: import("@webiny/pulumi").PulumiAppResource
userPoolClient: import("@webiny/pulumi").PulumiAppResource
dynamoDbTable: import("@webiny/pulumi").PulumiAppResource
vpc: {
vpc: import("@webiny/pulumi").PulumiAppResource
subnets: {
public: import("@webiny/pulumi").PulumiAppResource
private: import("@webiny/pulumi").PulumiAppResource
};
} | null;
}>;
`
Creates Storage Pulumi app.
`ts
// This is imported in our Pulumi program's entrypoint file (index.ts).
import { createStoragePulumiApp } from "@webiny/pulumi-aws";
export = async () => {
const coreApp = createCoreApp();
return coreApp.run();
};
`
#### createApiApp
` export declare const createApiPulumiApp: (projectAppParams?: CreateApiAppParams) => PulumiApp<{Type Declaration
ts
export interface CreateApiAppParams {
/**
* Enables or disables VPC for the API.
* For VPC to work you also have to enable it in the Storage application.
*/
vpc?: PulumiAppParam
/* Custom domain configuration /
domain?(app: PulumiApp): CustomDomainParams | undefined | void;
pulumi?: (app: ReturnType
}
fileManager: {
functions: {
transform: import("@webiny/pulumi").PulumiAppResource
manage: import("@webiny/pulumi").PulumiAppResource
download: import("@webiny/pulumi").PulumiAppResource
};
bucketNotification: import("@webiny/pulumi").PulumiAppResource
};
graphql: {
role: import("@webiny/pulumi").PulumiAppResource
policy: import("@webiny/pulumi").PulumiAppResource
functions: {
graphql: import("@webiny/pulumi").PulumiAppResource
};
};
apiGateway: {
api: import("@webiny/pulumi").PulumiAppResource
stage: import("@webiny/pulumi").PulumiAppResource
routes: Record
route: import("@webiny/pulumi").PulumiAppResource
permission: import("@webiny/pulumi").PulumiAppResource
}>;
addRoute: (name: string, params: import("..").ApiRouteParams) => void;
};
cloudfront: import("@webiny/pulumi").PulumiAppResource
apwScheduler: {
executeAction: {
role: import("@webiny/pulumi").PulumiAppResource
policy: import("@webiny/pulumi").PulumiAppResource
lambda: import("@webiny/pulumi").PulumiAppResource
};
scheduleAction: {
role: import("@webiny/pulumi").PulumiAppResource
policy: import("@webiny/pulumi").PulumiAppResource
lambda: import("@webiny/pulumi").PulumiAppResource
};
eventRule: import("@webiny/pulumi").PulumiAppResource
eventTarget: import("@webiny/pulumi").PulumiAppResource
};
}>;
`
Creates API Pulumi app.
`ts
// This is imported in our Pulumi program's entrypoint file (index.ts).
import { createApiPulumiApp } from "@webiny/pulumi-aws";
export = async () => {
const apiApp = createApiApp();
return apiApp.run();
};
`
#### createAdminApp
` export interface CreateAdminAppParams { export declare const createAdminPulumiApp: (projectAppParams: CreateAdminAppParams) => PulumiApp<{Type Declaration
ts
import * as aws from "@pulumi/aws";
import { PulumiApp } from "@webiny/pulumi";
import { CustomDomainParams } from "../customDomain";
/* Custom domain configuration /
domain?(app: PulumiApp): CustomDomainParams | undefined | void;
pulumi?: (app: ReturnType
}
cloudfront: import("@webiny/pulumi").PulumiAppResource
bucket: import("@webiny/pulumi").PulumiAppResource
origin: aws.types.input.cloudfront.DistributionOrigin;
}>;
`
Creates Admin Pulumi app.
`ts
// This is imported in our Pulumi program's entrypoint file (index.ts).
import { createAdminPulumiApp } from "@webiny/pulumi-aws";
export = async () => {
const adminApp = createAdminApp();
return adminApp.run();
};
`
#### createWebsiteApp
`Type Declaration
tsstorage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import { PulumiApp, PulumiAppParam } from "@webiny/pulumi";
import { CustomDomainParams } from "../customDomain";
export interface CreateWebsiteAppParams {
/* Custom domain configuration /
domain?(app: PulumiApp): CustomDomainParams | undefined | void;
/**
* Enables or disables VPC for the API.
* For VPC to work you also have to enable it in the application.`
*/
vpc?: PulumiAppParam
pulumi?: (app: ReturnType
}
export declare const createWebsitePulumiApp: (projectAppParams?: CreateWebsiteAppParams) => PulumiApp<{
prerendering: {
subscriber: {
policy: pulumi.Output
role: import("@webiny/pulumi").PulumiAppResource
lambda: import("@webiny/pulumi").PulumiAppResource
eventRule: import("@webiny/pulumi").PulumiAppResource
eventPermission: import("@webiny/pulumi").PulumiAppResource
eventTarget: import("@webiny/pulumi").PulumiAppResource
};
renderer: {
policy: pulumi.Output
role: import("@webiny/pulumi").PulumiAppResource
lambda: import("@webiny/pulumi").PulumiAppResource
eventSourceMapping: import("@webiny/pulumi").PulumiAppResource
};
flush: {
policy: pulumi.Output
role: import("@webiny/pulumi").PulumiAppResource
lambda: import("@webiny/pulumi").PulumiAppResource
eventRule: import("@webiny/pulumi").PulumiAppResource
eventPermission: import("@webiny/pulumi").PulumiAppResource
eventTarget: import("@webiny/pulumi").PulumiAppResource
};
};
app: {
cloudfront: import("@webiny/pulumi").PulumiAppResource
bucket: import("@webiny/pulumi").PulumiAppResource
origin: aws.types.input.cloudfront.DistributionOrigin;
};
delivery: {
cloudfront: import("@webiny/pulumi").PulumiAppResource
bucket: import("@webiny/pulumi").PulumiAppResource
origin: aws.types.input.cloudfront.DistributionOrigin;
};
}>;
Creates Website Pulumi app.
`ts
// This is imported in our Pulumi program's entrypoint file (index.ts).
import { createWebsitePulumiApp } from "@webiny/pulumi-aws";
export = async () => {
const websiteApp = createWebsiteApp();
return websiteApp.run();
};
``