Azure Function에서 SendGrid 바인딩을 사용하여 메일 보내기

Azure상에서, SendGrid 바인딩을 사용해, 간편하게 유저에게 메일을 보내는 구조를 만들고 있으므로, SendGrid 바인딩의 사용법을 정리해 보았다. npm으로 SendGrid의 클라이언트를 설치할 필요도 없고, 빨리 메일 전달을 작성할 수 있으므로 편리.

준비하는 것


  • SendGrid API Key
  • SendGrid도 Azure에서 쉽게 계정을 열 수 있으므로 편리합니다

  • Azure Function CLI
  • 설치 방법은 위의 기사을 참조하십시오.


  • 설정 절차



    Azure Function의 App Setting에 SendGrid의 API Key 추가



    미리 얻은 SendGrid의 API Key를 Function에서 사용할 수 있도록 포털에서 App Settings를 추가. 예를 들어 SendGridAPIKey로 추가합니다.

    func 명령으로 Function 만들기



    트리거는 무엇이든 좋기 때문에 우선 만들어 보자.func function new 명령은 대화식으로 새 Function을 작성할 수 있습니다.
    여기서는 간단한 HTTP 트리거로 만들었습니다.
    $ func function new
    Select a language:
    1. C#
    2. JavaScript
    Choose option: 2
    JavaScript
    Select a template:
    1. BlobTrigger
    2. HttpTrigger
    3. QueueTrigger
    4. TimerTrigger
    Choose option: 2
    HttpTrigger
    Function name: [HttpTriggerJS] SendEmail
    Writing /Users/tatsuya.b.sato/Projects/private/myfunctions/SendEmail/index.js
    Writing /Users/tatsuya.b.sato/Projects/private/myfunctions/SendEmail/sample.dat
    Writing /Users/tatsuya.b.sato/Projects/private/myfunctions/SendEmail/function.json
    

    function.json에 SendGrid 바인딩 추가



    SendEmail/function.json
    {
      "disabled": false,
      "bindings": [
        {
          "authLevel": "function",
          "type": "httpTrigger",
          "direction": "in",
          "name": "req"
        },
        {
          "name": "$return",
          "type": "sendGrid",
          "direction": "out",
          "apiKey": "SendGridAPIKey",
          "subject": "Test from Azure Function!",
          "text": "Hi, Azure Function!"
        }
      ]
    }
    

    바인딩에 대한 자세한 내용은 문서을 참조하십시오.

    Function을 쓴다.



    HTTP 트리거로 지정된 메일 주소에 메일을 보내는 Function을 써 보자.

    SendEmail/index.js
    module.exports = function (context, req) {
        var email = req.query.email;
    
        var message = {
          personalizations: [
            { to: [ { email: email } ] }
          ],
          from: { email: "[email protected]" }
        };
    
        context.done(null, message);
    };
    

    배포



    git이나 FTP로 배포하면 완료.
    위의 예라면 HTTP URL 매개 변수에 [email protected]와 같이 대상을 지정하여 보낼 수 있습니다.
    여기에서는 간편함을 위해 HTTP 트리거를 사용했지만 어디서나 누구나 사용할 수 버리는 것은 위험하기 때문에 업무에서는 Queue 트리거 등 적절한 방법으로 전환합시다.

    SendGrid 의 메세지로서 지정할 수 있는 JSON 의 값은, 분명히 v3 Mail Send 같습니다.

    참고


  • Azure Functions SendGrid 바인딩 | Microsoft Docs
  • v3 Mail Send API 개요 - 문서 | SendGrid
  • 좋은 웹페이지 즐겨찾기