|
1 | 1 | const { Client } = require('pg'); |
2 | 2 | const { SecretsManagerClient, GetSecretValueCommand } = require('@aws-sdk/client-secrets-manager'); |
| 3 | +const https = require('https'); |
| 4 | +const url = require('url'); |
3 | 5 |
|
4 | 6 | const secretsManager = new SecretsManagerClient(); |
5 | 7 |
|
@@ -74,24 +76,48 @@ exports.handler = async (event) => { |
74 | 76 | } |
75 | 77 | }; |
76 | 78 |
|
77 | | -async function sendResponse(event, status, reason) { |
78 | | - const response = { |
79 | | - Status: status, |
80 | | - Reason: reason, |
81 | | - PhysicalResourceId: 'postgres-setup-' + Date.now(), |
82 | | - StackId: event.StackId, |
83 | | - RequestId: event.RequestId, |
84 | | - LogicalResourceId: event.LogicalResourceId |
85 | | - }; |
86 | | - |
87 | | - console.log('Response:', JSON.stringify(response, null, 2)); |
88 | | - |
89 | | - const fetch = (await import('node-fetch')).default; |
90 | | - await fetch(event.ResponseURL, { |
91 | | - method: 'PUT', |
92 | | - headers: { 'Content-Type': '' }, |
93 | | - body: JSON.stringify(response) |
94 | | - }); |
| 79 | +function sendResponse(event, status, reason) { |
| 80 | + return new Promise((resolve, reject) => { |
| 81 | + const responseBody = JSON.stringify({ |
| 82 | + Status: status, |
| 83 | + Reason: reason, |
| 84 | + PhysicalResourceId: 'postgres-setup-' + Date.now(), |
| 85 | + StackId: event.StackId, |
| 86 | + RequestId: event.RequestId, |
| 87 | + LogicalResourceId: event.LogicalResourceId, |
| 88 | + Data: {} |
| 89 | + }); |
| 90 | + |
| 91 | + console.log('Response:', responseBody); |
| 92 | + |
| 93 | + // Parse the URL |
| 94 | + const parsedUrl = url.parse(event.ResponseURL); |
| 95 | + |
| 96 | + // Prepare the request options |
| 97 | + const options = { |
| 98 | + hostname: parsedUrl.hostname, |
| 99 | + port: 443, |
| 100 | + path: parsedUrl.path, |
| 101 | + method: 'PUT', |
| 102 | + headers: { |
| 103 | + 'Content-Type': '', |
| 104 | + 'Content-Length': responseBody.length |
| 105 | + } |
| 106 | + }; |
| 107 | + |
| 108 | + // Send the response |
| 109 | + const request = https.request(options, (response) => { |
| 110 | + console.log(`Status code: ${response.statusCode}`); |
| 111 | + resolve({ status, reason }); |
| 112 | + }); |
95 | 113 |
|
96 | | - return response; |
| 114 | + request.on('error', (error) => { |
| 115 | + console.error('Error sending response:', error); |
| 116 | + reject(error); |
| 117 | + }); |
| 118 | + |
| 119 | + // Write the response body and end the request |
| 120 | + request.write(responseBody); |
| 121 | + request.end(); |
| 122 | + }); |
97 | 123 | } |
0 commit comments