Skip to content

Commit

Permalink
chore: adding tests for cloudfront and lambda (#174)
Browse files Browse the repository at this point in the history
This adds tests for some additional popular resources.

aws-native:s3:Bucket
aws-native:s3:BucketPolicy
aws-native:cloudfront:KeyValueStore
aws-native:cloudfront:Function
aws-native:lambda:Function
aws-native:iam:Role
aws-native:lambda:Permission
aws-native:lambda:Alias
aws-native:lambda:Url
aws-native:lambda:Version
aws-native:cloudfront:Distribution
aws-native:cloudfront:CloudFrontOriginAccessIdentity
  • Loading branch information
corymhall authored Oct 23, 2024
1 parent 9f3122e commit 72108f4
Show file tree
Hide file tree
Showing 18 changed files with 249 additions and 148 deletions.
4 changes: 2 additions & 2 deletions examples/alb/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"@types/node": "^10.0.0"
},
"dependencies": {
"@pulumi/aws": "^4.6.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
"constructs": "10.3.0",
Expand Down
4 changes: 2 additions & 2 deletions examples/api-websocket-lambda-dynamodb/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"@aws-sdk/client-apigatewaymanagementapi": "^3.632.0",
"@aws-sdk/client-dynamodb": "^3.632.0",
"@aws-sdk/lib-dynamodb": "^3.632.0",
"@pulumi/aws": "^4.6.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/cdk": "^0.5.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
Expand Down
5 changes: 2 additions & 3 deletions examples/apprunner/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@
"@types/node": "^10.0.0"
},
"dependencies": {
"@pulumi/aws": "^4.6.0",
"@pulumi/awsx": "^0.32.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
"constructs": "10.3.0",
Expand Down
4 changes: 3 additions & 1 deletion examples/appsvc/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ import * as pulumicdk from '@pulumi/cdk';
import * as aws from '@pulumi/aws';

const defaultVpc = pulumi.output(aws.ec2.getVpc({ default: true }));
const defaultVpcSubnets = defaultVpc.id.apply((id) => aws.ec2.getSubnetIds({ vpcId: id }));
const defaultVpcSubnets = defaultVpc.id.apply((id) =>
aws.ec2.getSubnets({ filters: [{ name: 'vpc-id', values: [id] }] }),
);
const azs = aws.getAvailabilityZonesOutput({
filters: [
{
Expand Down
4 changes: 2 additions & 2 deletions examples/appsvc/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"@types/node": "^10.0.0"
},
"dependencies": {
"@pulumi/aws": "^4.6.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
"constructs": "10.3.0",
Expand Down
3 changes: 3 additions & 0 deletions examples/cloudfront-lambda-urls/Pulumi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
name: cloudfront-lambda-urls
runtime: nodejs
description: cloudfront-lambda-urls CDK example
8 changes: 8 additions & 0 deletions examples/cloudfront-lambda-urls/index.handler.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { Handler, APIGatewayProxyEventV2, APIGatewayProxyResultV2 } from 'aws-lambda';

export const handler: Handler = async (event: APIGatewayProxyEventV2): Promise<APIGatewayProxyResultV2> => {
return {
statusCode: 200,
body: 'Hello world!',
};
};
61 changes: 61 additions & 0 deletions examples/cloudfront-lambda-urls/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import * as pulumi from '@pulumi/pulumi';
import * as pulumicdk from '@pulumi/cdk';
import { Code, FunctionUrlAuthType, Runtime } from 'aws-cdk-lib/aws-lambda';
import {
Distribution,
experimental,
Function,
FunctionCode,
FunctionEventType,
FunctionRuntime,
KeyValueStore,
LambdaEdgeEventType,
} from 'aws-cdk-lib/aws-cloudfront';
import { FunctionUrlOrigin, S3Origin } from 'aws-cdk-lib/aws-cloudfront-origins';
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
import { Bucket } from 'aws-cdk-lib/aws-s3';

class CloudFrontAppStack extends pulumicdk.Stack {
public cloudFrontUrl: pulumi.Output<string>;
constructor(id: string) {
super(id);

const handler = new NodejsFunction(this, 'handler', {
runtime: Runtime.NODEJS_LATEST,
});

const cfFunction = new Function(this, 'CfFunction', {
code: FunctionCode.fromInline('export function handler(event) { return event.request }'),
runtime: FunctionRuntime.JS_2_0,
});

const alias = handler.addAlias('live');
const url = alias.addFunctionUrl({
authType: FunctionUrlAuthType.NONE,
});

const bucket = new Bucket(this, 'Bucket');

const distro = new Distribution(this, 'distro', {
defaultBehavior: {
origin: new FunctionUrlOrigin(url),
functionAssociations: [
{
function: cfFunction,
eventType: FunctionEventType.VIEWER_REQUEST,
},
],
},
});
distro.addBehavior('/images/*', new S3Origin(bucket));

new KeyValueStore(this, 'KVStore');

this.cloudFrontUrl = this.asOutput(distro.distributionDomainName);

this.synth();
}
}

const stack = new CloudFrontAppStack('cloudfront-app');
export const url = pulumi.interpolate`https://${stack.cloudFrontUrl}`;
17 changes: 17 additions & 0 deletions examples/cloudfront-lambda-urls/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "cloudfront-lambda-urls",
"devDependencies": {
"@types/node": "^10.0.0"
},
"dependencies": {
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/cdk": "^0.5.0",
"@pulumi/pulumi": "^3.0.0",
"@types/aws-lambda": "^8.10.145",
"aws-cdk-lib": "2.149.0",
"aws-lambda": "^1.0.7",
"constructs": "10.3.0",
"esbuild": "^0.24.0"
}
}
18 changes: 18 additions & 0 deletions examples/cloudfront-lambda-urls/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"compilerOptions": {
"strict": true,
"outDir": "bin",
"target": "es2016",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"experimentalDecorators": true,
"pretty": true,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.ts"
]
}
5 changes: 2 additions & 3 deletions examples/cron-lambda/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@
"@types/node": "^10.0.0"
},
"dependencies": {
"@pulumi/aws": "^4.6.0",
"@pulumi/awsx": "^0.32.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
"constructs": "10.3.0",
Expand Down
4 changes: 2 additions & 2 deletions examples/ec2-instance/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"@types/node": "^10.0.0"
},
"dependencies": {
"@pulumi/aws": "^4.6.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
"constructs": "10.3.0",
Expand Down
4 changes: 2 additions & 2 deletions examples/ecscluster/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"@types/node": "^10.0.0"
},
"dependencies": {
"@pulumi/aws": "^4.6.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
"constructs": "10.3.0",
Expand Down
9 changes: 9 additions & 0 deletions examples/examples_nodejs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,15 @@ func TestEC2Instance(t *testing.T) {
integration.ProgramTest(t, &test)
}

func TestCloudFront(t *testing.T) {
test := getJSBaseOptions(t).
With(integration.ProgramTestOptions{
Dir: filepath.Join(getCwd(t), "cloudfront-lambda-urls"),
})

integration.ProgramTest(t, &test)
}

func TestAPIWebsocketLambdaDynamoDB(t *testing.T) {
test := getJSBaseOptions(t).
With(integration.ProgramTestOptions{
Expand Down
4 changes: 2 additions & 2 deletions examples/fargate/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"@types/node": "^10.0.0"
},
"dependencies": {
"@pulumi/aws": "^4.6.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws": "^6.0.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
"constructs": "10.3.0",
Expand Down
2 changes: 1 addition & 1 deletion examples/s3-object-lambda/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
},
"dependencies": {
"@pulumi/cdk": "^0.5.0",
"@pulumi/aws-native": "^0.117.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/pulumi": "^3.0.0",
"aws-cdk-lib": "2.149.0",
"constructs": "10.3.0"
Expand Down
7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,16 @@
}
},
"resolutions": {
"@pulumi/pulumi": "3.121.0",
"wrap-ansi": "7.0.0",
"string-width": "4.1.0"
},
"devDependencies": {
"@aws-cdk/aws-apprunner-alpha": "2.20.0-alpha.0",
"@pulumi/aws": "^6.32.0",
"@pulumi/aws-native": "0.121.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/docker": "^4.5.0",
"@pulumi/pulumi": "^3.117.0",
"@pulumi/pulumi": "3.121.0",
"@types/archiver": "^6.0.2",
"@types/fs-extra": "^11.0.4",
"@types/jest": "^29.5.2",
Expand All @@ -50,7 +51,7 @@
},
"peerDependencies": {
"@pulumi/aws": "^6.32.0",
"@pulumi/aws-native": "^0.121.0",
"@pulumi/aws-native": "^1.0.0",
"@pulumi/docker": "^4.5.0",
"@pulumi/pulumi": "^3.117.0",
"aws-cdk-lib": "^2.20.0",
Expand Down
Loading

0 comments on commit 72108f4

Please sign in to comment.