Я пытаюсь запустить Lambda в общедоступном c su bnet для связи с целым rnet. Я могу заставить Лямбду ударить www.google.com без VP C (что, как говорят в документах, стоит за сценой), но не могу, если я запускаю Lambda в VP C.
Действия по воспроизведению:
- Создайте лямбду (Node.js 12x) со следующим кодом. Я назвал Lambda 'curlGoogle'.
- Запустите его, чтобы убедиться, что он успешен и может получать от www.google.com. Не должно быть никакого указанного VP C.
- Go для VP C Панель инструментов и использование мастера VP C для создания VP C с общедоступной c su bnet. Я пробовал просмотреть значения для блока CIDR IPv4 (например, 10.1.0.0/16), блока CIDR IPv6, AZ. Я обычно оставляю «Включить DNS-имена хостов» в «Да».
- Измените лямбду, чтобы использовать только что созданные VP C, Su bnet и Security Group.
- Убедитесь, что это не доходит до Google и время ожидания.
Я пытался модифицировать этот подход и не имел никакого успеха (например, на самом деле связывание su bnet с vp c, ослабление всех настроек на Группы безопасности и списки ACL для сети).
Первоначально я пытался следовать одному опубликованному c и одному частному документу, но не смог заставить его работать.
Есть идеи? Спасибо! - Дан
const http = require('http');
exports.handler = async (event) => {
return httprequest().then((data) => {
const response = {
statusCode: 200,
body: JSON.stringify(data),
};
return response;
});
};
function httprequest() {
return new Promise((resolve, reject) => {
const options = {
host: 'www.google.com',
path: '/',
port: 80,
method: 'GET'
};
const req = http.request(options, (res) => {
if (res.statusCode < 200 || res.statusCode >= 300) {
return reject(new Error('statusCode=' + res.statusCode));
}
var body = [];
res.on('data', function(chunk) {
body.push(chunk);
});
res.on('end', function() {
try {
body = Buffer.concat(body).toString();
} catch(e) {
reject(e);
}
resolve(body);
});
});
req.on('error', (e) => {
reject(e.message);
});
// send the request
req.end();
});
}