Sendgrid-nodejs: getaddrinfo EAI_AGAIN api.sendgrid.com:443

์— ๋งŒ๋“  2019๋…„ 05์›” 06์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: sendgrid/sendgrid-nodejs

๋ฌธ์ œ ์š”์•ฝ

ํด๋ผ์šฐ๋“œ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด๋ ค๊ณ ๋งŒ ํ•˜๋ฉด

const functions = require('firebase-functions')
const express = require('express')
const cors = require('cors')
const mailService = require('@sendgrid/mail')
const bodyParser = require('body-parser')

//Constants
const SENDGRID_API_KEY = 'Myapikey'

//Set up
const app = express()

app.use(bodyParser.json())
app.use(cors({ origin: true }))
app.post('/send', async (req, res) => {
  mailService.setApiKey(SENDGRID_API_KEY)

  const { name, email, message } = req.body

  const emailContent = {
    to: '[email protected]',
    from: '[email protected]'',
    subject: `subject`,
    text: `some message`,
  }

  try{
    const response = await mailService.send(emailContent)

    res.json({message: 'message sent'})

  } catch(error){
    const { message, code, response } = error

    res.json({message, response})
  }
})

exports.api = functions.https.onRequest(app)

๊ธฐ์ˆ ์  ์„ธ๋ถ€ ์‚ฌํ•ญ:

  • sendgrid-nodejs: 6.3.1
  • Node.js ๋ฒ„์ „: 11.15.0

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

DNS ๋ฌธ์ œ ๊ฐ™์Šต๋‹ˆ๋‹ค. Firebase ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์š”์ฒญ์„ ํ•˜๋ ค๋ฉด ์œ ๋ฃŒ ํ”Œ๋žœ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋‹ค๋ฅธ ๊ณณ(stackoverflow)์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๋žฉํ†ฑ์—์„œ ๋กœ์ปฌ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

๋ชจ๋“  8 ๋Œ“๊ธ€

DNS ๋ฌธ์ œ ๊ฐ™์Šต๋‹ˆ๋‹ค. Firebase ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์š”์ฒญ์„ ํ•˜๋ ค๋ฉด ์œ ๋ฃŒ ํ”Œ๋žœ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋‹ค๋ฅธ ๊ณณ(stackoverflow)์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๋žฉํ†ฑ์—์„œ ๋กœ์ปฌ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

@์•„๋กœ์น˜

๋žฉํ†ฑ์—์„œ ๋กœ์ปฌ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, ๋กœ์ปฌ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Firebase ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด SendGrid์ž…๋‹ˆ๊นŒ?
๊ฐ์‚ฌ ํ•ด์š”

์ถ”์‹ : ๋กœ์ปฌ์˜ ๊ฒฝ์šฐ ์ด๋ฏธ ๋ฐฐํฌ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋กœ์ปฌ์—์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ๋‚ด ๊ธฐ๋Šฅ์€ ๋ผ์ด๋ธŒ์ž…๋‹ˆ๋‹ค.

@aroach ๋Š” ๊ทธ๊ฒƒ์ด ์‚ฌ์‹ค๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค: https://firebase.google.com/support
๊ทธ๋ฆฌ๊ณ  ๋‚ด ๊ณ„ํš์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”

์ด๊ฒƒ์€ ํ™”์žฌ ๊ธฐ๋ฐ˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ(์ŠคํŒŒํฌํ”Œ๋žœ) ๊ณ„์ •์„ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด ์™ธ๋ถ€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ Google ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://firebase.google.com/pricing/
SendGrid๋ฅผ ํ†ตํ•ด ์ด๋ฉ”์ผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žœ(Flame ํ”Œ๋žœ ๋˜๋Š” Blaze ํ”Œ๋žœ)์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค.

@kadnan0900 blaze ๊ณ„ํš์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ getaddrinfo ENOTFOUND api.github.com api.github๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. com:443 ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ํ•œ ๋ฒˆ ์ž‘๋™ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Firebase์˜ Blaze ๊ณ„ํš์—์„œ ์˜ฌ๋ฐ”๋ฅธ API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์œผ๋ฉฐ API ํ‚ค ์ž๊ฒฉ ์ฆ๋ช…์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. Firebase ์—๋ฎฌ๋ ˆ์ดํ„ฐ/UI๋กœ ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธํ•˜๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ:
"@sendgrid/mail": "^7.1.1", "firebase-admin": "^8.12.1", "firebase-functions": "^3.6.2"

DNS ๋ฌธ์ œ ๊ฐ™์Šต๋‹ˆ๋‹ค. Firebase ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์š”์ฒญ์„ ํ•˜๋ ค๋ฉด ์œ ๋ฃŒ ํ”Œ๋žœ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋‹ค๋ฅธ ๊ณณ(stackoverflow)์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๋žฉํ†ฑ์—์„œ ๋กœ์ปฌ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

๋กœ์ปฌ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐฐํฌ ์ค‘์ด ์•„๋‹˜

๋˜ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ํ•œ ๋ฒˆ ์ž‘๋™ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Firebase์˜ Blaze ๊ณ„ํš์—์„œ ์˜ฌ๋ฐ”๋ฅธ API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์œผ๋ฉฐ API ํ‚ค ์ž๊ฒฉ ์ฆ๋ช…์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. Firebase ์—๋ฎฌ๋ ˆ์ดํ„ฐ/UI๋กœ ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธํ•˜๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ:
"@sendgrid/mail": "^7.1.1", "firebase-admin": "^8.12.1", "firebase-functions": "^3.6.2"

ํ–‰์šด์ด ์žˆ๋‚˜์š”? Blaze ๊ณ„ํš์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰