# @wpkyoto/aws-cdk-cloudfront-s3

Latest version **1.1.0** (published 2020-06-29) · Apache-2.0 license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install @wpkyoto/aws-cdk-cloudfront-s3
pnpm add @wpkyoto/aws-cdk-cloudfront-s3
yarn add @wpkyoto/aws-cdk-cloudfront-s3
bun add @wpkyoto/aws-cdk-cloudfront-s3
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2020-06-29 |
| First published | 2020-06-25 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=10 |
| Dependencies | 6 |
| Unpacked size | 35.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Hidetaka Okamoto |
| Maintainers | hideokamoto |

## Links

- npm: https://www.npmjs.com/package/@wpkyoto/aws-cdk-cloudfront-s3
- Repository: https://github.com/wpkyoto/aws-cdk-cloudfront-s3
- Homepage: https://github.com/wpkyoto/aws-cdk-cloudfront-s3#readme
- Issues: https://github.com/wpkyoto/aws-cdk-cloudfront-s3/issues
- npm.io page: https://npm.io/package/@wpkyoto/aws-cdk-cloudfront-s3

## Dependencies (6)

- [crypto](https://npm.io/package/crypto.md) ^1.0.1
- [@aws-cdk/core](https://npm.io/package/@aws-cdk/core.md) 1.47.0
- [@aws-cdk/aws-s3](https://npm.io/package/@aws-cdk/aws-s3.md) ^1.47.0
- [@wpkyoto/lambda-logger](https://npm.io/package/@wpkyoto/lambda-logger.md) ^1.1.1
- [@aws-cdk/aws-cloudfront](https://npm.io/package/@aws-cdk/aws-cloudfront.md) ^1.47.0
- [@aws-cdk/aws-lambda-nodejs](https://npm.io/package/@aws-cdk/aws-lambda-nodejs.md) ^1.47.0

## Recent versions

- 1.1.0 (latest) — 2020-06-29
- 1.0.2 — 2020-06-29
- 1.0.1 — 2020-06-29
- 1.0.0 — 2020-06-25
- 0.1.2 — 2020-06-25
- 0.1.1 — 2020-06-25
- 0.1.0 — 2020-06-25

## README

# CloudFront S3 with Origin Access Identity


## AWS CDK version

Now using `v1.47.0`.

## Install

```
$ npm install -S @wpkyoto/aws-cdk-cloudfront-s3
```

## Usage


```typescript
import { expect as expectCDK, haveResource, SynthUtils } from '@aws-cdk/assert';
import * as cdk from '@aws-cdk/core';
import { Bucket } from '@aws-cdk/aws-s3';
import { CloudfrontS3 } from '@wpkyoto/aws-cdk-cloudfront-s3';

const app = new cdk.App();
const stack = new cdk.Stack(app, 'TestStack');
new CloudfrontS3(stack, 'MyTestConstruct', {
  name: 'example',
});

```

### Use own S3 bucket

```typescript

import { expect as expectCDK, haveResource, SynthUtils } from '@aws-cdk/assert';
import * as cdk from '@aws-cdk/core';
import { Bucket } from '@aws-cdk/aws-s3';
import { CloudfrontS3 } from '@wpkyoto/aws-cdk-cloudfront-s3';

const app = new cdk.App();
const stack = new cdk.Stack(app, 'TestStack');
new CloudfrontS3(stack, 'MyTestConstruct', {
  name: 'example',
  s3Bucket: Bucket.fromBucketName(stack, 'Dummy', 'dummy'),
});
```

### Custom Domain

```typescript

import { expect as expectCDK, haveResource, SynthUtils } from '@aws-cdk/assert';
import * as cdk from '@aws-cdk/core';
import { Bucket } from '@aws-cdk/aws-s3';
import { CloudfrontS3 } from '@wpkyoto/aws-cdk-cloudfront-s3';

const app = new cdk.App();
const stack = new cdk.Stack(app, 'TestStack');
new CloudfrontS3(stack, 'MyTestConstruct', {
  name: 'example',
  acmCertificationARN: 'YOUR_ACM_ARN',
  domains: ['example.com']
});
```

### Own Lambda@edge function

```typescript
import { expect as expectCDK, haveResource, SynthUtils } from '@aws-cdk/assert';
import * as cdk from '@aws-cdk/core';
import { Bucket } from '@aws-cdk/aws-s3';
import { CloudfrontS3 } from '@wpkyoto/aws-cdk-cloudfront-s3';
import { Runtime } from '@aws-cdk/aws-lambda';
import { NodejsFunction } from '@aws-cdk/aws-lambda-nodejs';
import {createHash} from 'crypto'
import { readFileSync } from 'fs';
import { join } from 'path';

const app = new cdk.App();
const stack = new cdk.Stack(app, 'TestStack');
new CloudfrontS3(stack, 'MyTestConstruct', {
  name: 'example',
  edgeFunctions: {
    "origin-response": new NodejsFunction(this, 'OriginRequestHandler', {
        handler: 'handler',
        runtime: Runtime.NODEJS_12_X,
        functionName: `ExampleEdgeFunction`,
        entry: join(__dirname, '/lambda/originResponse.ts'),
      }).addVersion(
        createHash('sha256').update(
          readFileSync(
            join(__dirname, '/lambda/originResponse.ts'),
            'utf-8'
          )
        ).digest('hex')
      )
  }
});

```

---
_Source: https://npm.io/package/@wpkyoto/aws-cdk-cloudfront-s3 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
