Skip to content

Instantly share code, notes, and snippets.

@mikhailshilkov
Created November 7, 2019 21:59
Show Gist options
  • Save mikhailshilkov/192f54af6ba5fb83c2ead776cc73b3f9 to your computer and use it in GitHub Desktop.
Save mikhailshilkov/192f54af6ba5fb83c2ead776cc73b3f9 to your computer and use it in GitHub Desktop.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const corsApi = new aws.apigateway.RestApi("cors_api", {
description: "An API for demonstrating CORS-enabled methods.",
name: "MyAPI",
});
const corsResource = new aws.apigateway.Resource("cors_resource", {
parentId: corsApi.rootResourceId,
pathPart: "Employee",
restApi: corsApi.id,
});
const optionsMethod = new aws.apigateway.Method("options_method", {
authorization: "NONE",
httpMethod: "OPTIONS",
resourceId: corsResource.id,
restApi: corsApi.id,
});
const optionsIntegration = new aws.apigateway.Integration("options_integration", {
httpMethod: optionsMethod.httpMethod,
resourceId: corsResource.id,
restApi: corsApi.id,
type: "MOCK",
}, {dependsOn: [optionsMethod]});
const options200 = new aws.apigateway.MethodResponse("options_200", {
httpMethod: optionsMethod.httpMethod,
resourceId: corsResource.id,
responseModels: {
"application/json": "Empty",
},
responseParameters: {
"method.response.header.Access-Control-Allow-Headers": true,
"method.response.header.Access-Control-Allow-Methods": true,
"method.response.header.Access-Control-Allow-Origin": true,
},
restApi: corsApi.id,
statusCode: "200",
}, {dependsOn: [optionsMethod]});
const optionsIntegrationResponse = new aws.apigateway.IntegrationResponse("options_integration_response", {
httpMethod: optionsMethod.httpMethod,
resourceId: corsResource.id,
responseParameters: {
"method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'",
"method.response.header.Access-Control-Allow-Methods": "'GET,OPTIONS,POST,PUT'",
"method.response.header.Access-Control-Allow-Origin": "'*'",
},
restApi: corsApi.id,
statusCode: options200.statusCode,
}, {dependsOn: [options200]});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment