日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過DataWorks實現郵件外發最佳實踐

本文為您介紹如何通過PyODPS節點結合獨享資源組的方式,實現郵件外發的需求。

背景信息

DataWorks中的PyODPS節點和Python腳本有所區別,PyODPS節點主要用于和MaxCompute交互進行數據分析處理。DataWorks暫不支持自定義發送郵件功能,您可以通過PyODPS節點結合獨享資源組的方式,實現從MaxCompute讀取數據進行郵件外發的場景需求。

說明

TCP 25端口是默認的郵箱服務端口。出于安全考慮,云服務器ECS的25端口默認受限,獨享資源組無法支持該端口,建議您使用465端口發送郵件。

通過PyODPS節點結合獨享資源組的方式實現郵件外發時,獨享資源組用戶無法登錄到對應的機器,這會導致無法安裝更多Python第三方模塊,實現更多的功能。

操作步驟

  1. 新增獨享資源組。

    1. 登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的資源組,進入資源組列表頁面。

    2. 獨享資源組頁簽下,單擊新建資源組

    3. 配置各項參數,詳情請參見新增和使用Serverless資源組

      說明

      Serverless資源組和DataWorks工作空間的地域請保持一致。

    4. 單擊立即購買。

  2. 分配Serverless資源組至相應的工作空間。

    1. 單擊相應資源組后的綁定工作空間

    2. 綁定工作空間操作框中,單擊綁定要分配的工作空間。

  3. 進入數據開發頁面。

    登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的數據開發與治理 > 數據開發,在下拉框中選擇對應工作空間后單擊進入數據開發

  4. 新建PyODPS 2節點。

    1. 鼠標懸停至image.png圖標,單擊新建節點 > MaxCompute > PyODPS 2

      您也可以打開相應的業務流程,右鍵單擊MaxCompute,選擇新建節點 > PyODPS 2

    2. 新建節點對話框中,輸入名稱,并選擇路徑。

      說明

      節點名稱必須是大小寫字母、中文、數字、下劃線(_)和小數點(.),且不能超過128個字符。

    3. 單擊確認。

    4. 在PyODPS 2節點的編輯頁面,輸入如下SMTP發送代碼。

      import smtplib
      from email.mime.text import MIMEText
      from odps import ODPS
      mail_host = '<yourHost>' //郵箱服務地址
      mail_username = '<yourUserName>' //登錄用戶名
      mail_password = '<yourPassWord>'  //登錄用戶密碼
      mail_sender = '<senderAddress>' //發件人郵箱地址
      mail_receivers = ['<receiverAddress>']  //收件人郵箱地址
      mail_content=""        //郵件內容
      with o.execute_sql('query_sql').open_reader() as reader:
                 for record in reader:
                         mail_content+=str(record['column_name'])+' '+record['column_name']+'\n'
      message = MIMEText(mail_content,'plain','utf-8')
      message['Subject'] = 'mail test'
      message['From'] = mail_sender
      message['To'] = mail_receivers[0]
      try:
                 smtpObj = smtplib.SMTP_SSL(mail_host+':465')
                 smtpObj.login(mail_username,mail_password)
                 smtpObj.sendmail(
                     mail_sender,mail_receivers,message.as_string())
                 smtpObj.quit()
                 print('mail send success')
      except smtplib.SMTPException as e:
                 print('mail send error',e)           

      或者您可以使用以下發送郵件代碼的示例:

      import smtplib
      from email.mime.text import MIMEText
      from odps import ODPS
      mail_host = 'username@example.com'  //郵箱服務地址
      mail_username = 'xxxx' //登錄用戶名
      mail_password = 'xxx'  //登錄用戶密碼
      mail_sender = 'xxx' //發件人郵箱地址
      mail_receivers = ['xxx'] //收件人郵箱地址
      mail_content=""        //郵件內容
      with o.execute_sql('query_sql').open_reader() as reader:           
          for record in reader:                   
                      mail_content+=str(record['column_name'])+' '+record['column_name']+'\n'
      message = MIMEText(mail_content,'plain','utf-8')
      message['Subject'] = 'mail test'
      message['From'] = mail_sender
      message['To'] = mail_receivers[0]
      try:           
                 smtpObj = smtplib.SMTP()
                 smtpObj.connect(mail_host,587)
                 smtpObj.ehlo()
                 smtpObj.starttls()
                 smtpObj.login(mail_username,mail_password)
                 smtpObj.sendmail(
                     mail_sender,mail_receivers,message.as_string())
                 smtpObj.quit()
                 print('mail send success')
      except smtplib.SMTPException as e: 
                print('mail send error',e)
      說明

      使用PyODPS 2節點外發郵件時,PyODPS會將讀取的數據存放至一個臨時文件中,再通過郵件的形式外發。外發郵件時沒有數據條數的限制。

    5. 單擊工具欄中的保存圖標。

  5. 提交節點。

    重要

    提交節點前,您需要單擊右側的調度配置,設置重跑屬性依賴的上游節點

    1. 單擊工具欄中的提交圖標。

    2. 提交新版本對話框中,輸入備注。

    3. 單擊確認。

    如果您使用的是標準模式的工作空間,提交節點后,請單擊右上角的發布。詳情請參見發布任務

  6. 修改運行節點的資源組。

    1. 在PyODPS 2節點的編輯頁面,單擊右上方的運維。

    2. 在左側導航欄,單擊周期任務運維 > 周期任務

    3. 單擊相應節點后的更多 > 修改調度資源組

    4. 修改調度資源組對話框中,選擇資源組。

    5. 單擊確定。

  7. 測試節點,詳情請參見查看并管理周期任務。