如何從 Fargate 上的 Amazon ECS 任務連接到資料庫?

2 分的閱讀內容
0

我想從 AWS Fargate 上的 Amazon Elastic Container Service (Amazon ECS) 任務連接到資料庫。

解決方法

先決條件:

**注意:**以下範例使用 MySQL 作為引擎類型。如需引擎類型的詳細資訊,請參閱開始使用 Amazon RDS

將您的任務連接到資料庫

請完成下列步驟:

  1. 建立連接到 MySQL 資料庫的 Python 指令碼。下列範例 rds.py 指令碼會傳送與資料庫連接到 Amazon CloudWatch 的結果:
    import pymysqlimport os
    Database_endpoint = os.environ['ENDPOINT']
    Username = os.environ['USER']
    Password = os.environ['PASS']
    try:
      print("Connecting to " + Database_endpoint)
      db = pymysql.connect(host = Database_endpoint, user = Username, password = Password)
      print("Connection successful to " + Database_endpoint)
    db.close()
    except Exception as e:
      print("Connection unsuccessful due to " + str(e))
    注意:ENDPOINTUSERPASS 取代為您的資料庫值。
  2. 若要組合映像檔,請建立包含所需命令的 Dockerfile。例如:
    FROM pythonRUN pip install pymysql cryptography
    COPY rds.py /
    CMD [ "python", "/rds.py" ]
    **重要:**將 rds.py 指令碼和 Dockerfile 放在同一個資料夾中。
  3. 建立 Amazon ECR 儲存庫,然後將 Docker 映像檔推送至該儲存庫。
  4. 建立任務定義,然後將 Docker 映像檔新增為容器映像檔。例如:
    {
      "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole",
      "containerDefinitions": [
        {
          "name": "sample-app",
          "image": "YOUR-ECR-Repository-URL",
          "essential": true
        }
      ],
      "requiresCompatibilities": [
        "FARGATE"
      ],
      "networkMode": "awsvpc",
      "cpu": "256",
      "memory": "512",
      "family": "sample-app"
    }
    **注意:**在您的任務定義中,設定 ENDPOINTUSERPASS 環境變數的值。您可以直接將這些值作為環境變數傳遞,或從 AWS Secrets Manager 的機密中擷取這些值。如需詳細資訊,請參閱如何將機密或敏感資訊安全地傳遞至 Amazon ECS 任務中的容器?
  5. 開啟 Amazon ECS 主控台
  6. 在導覽窗格中,選擇任務定義
  7. 選取您的任務定義,選擇動作,然後選擇執行任務
  8. 針對啟動類型,選擇 FARGATE
  9. 針對叢集,選擇任務定義的叢集。
  10. 針對任務數量,輸入您要複製的任務數量。
  11. VPC 和安全群組區段中,針對叢集 VPC,選擇您的 Amazon Virtual Private Cloud (Amazon VPC)。
  12. 針對子網路,選擇您的子網路。
  13. 針對安全群組,至少選取一個安全群組。
  14. 選擇執行任務

rds.py 指令碼會停止任務並傳回下列訊息:

「任務中的必要容器已退出。」

確認您的任務已連線至資料庫

請完成下列步驟:

  1. 開啟 Amazon ECS 主控台
  2. 在導覽窗格中選擇叢集,然後選擇您的叢集。
  3. 選擇任務索引標籤。
  4. 針對所需的任務狀態,選擇已停止以查看停止任務的清單。
  5. 選擇您已停止的任務。
  6. 在停止任務之詳細資料索引標籤的容器區段中,展開該區段。
  7. 選擇檢視 CloudWatch 中的日誌

您會在 CloudWatch 主控台中看到以下訊息:

「成功連線至 [Your Endpoint]」

AWS 官方
AWS 官方已更新 5 個月前