Ir para o conteúdo

Como me conecto a um banco de dados a partir de uma tarefa do Amazon ECS no Fargate?

4 minuto de leitura
0

Quero me conectar a um banco de dados a partir de uma tarefa do Amazon Elastic Container Service (Amazon ECS) no AWS Fargate.

Resolução

Pré-requisitos:

Observação: a resolução a seguir usa um mecanismo de banco de dados MySQL. Para mais informações sobre como se conectar a bancos de dados que usam outros tipos de mecanismo, consulte Conceitos básicos do Amazon RDS.

Conectar sua tarefa ao seu banco de dados

Conclua as etapas a seguir:

  1. Crie um script Python que se conecte ao seu banco de dados MySQL. O exemplo de script rds.py a seguir envia o resultado da conexão com o banco de dados com o Amazon CloudWatch:

    import pymysql
    import os
    
    DATABASE_ENDPOINT = os.environ['example_endpoint']
    USERNAME = os.environ['example_username']
    PASSWORD = os.environ['example_password']
    
    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))

    Observação: substitua example_endpoint pelo endpoint do seu banco de dados. Substitua example_username pelo seu nome de usuário. Substitua example_password pela sua senha.

  2. Para montar uma imagem, crie um Dockerfile que inclua os comandos necessários. O arquivo de exemplo a seguir inclui os comandos necessários:

    FROM python
    RUN pip install pymysql cryptography
    COPY rds.py /
    CMD [ "python", "/rds.py" ]
  3. Crie um repositório do Amazon Elastic Container Registry (Amazon ECR) e, em seguida, envie sua imagem do Docker para esse repositório.

  4. Crie uma definição de tarefa e adicione sua imagem do Docker como imagem do contêiner:

    {  "executionRoleArn": "arn:aws:iam::example_account_ID:role/ecsTaskExecutionRole",  
      "containerDefinitions": [
        {
          "name": "example_app",
          "image": "example_repository_URL",
          "essential": true
        }
      ],
      "requiresCompatibilities": [
        "FARGATE"
      ],
      "networkMode": "awsvpc",
      "cpu": "256",
      "memory": "512",
      "family": "example_app"
    }

    Observação: substitua example_account_ID pelo ID da sua conta da AWS. Substitua example_app pelo nome da sua aplicação. Substitua example_repository_URL pelo URL do seu repositório do Amazon ECR. É uma prática recomendada definir os valores das variáveis de ambiente ENDPOINT, USER e PASS em sua definição de tarefa. É possível passar esses valores diretamente como variáveis de ambiente ou recuperá-los de segredos no AWS Secrets Manager. Para obter mais informações, consulte Como posso transmitir informações secretas ou confidenciais com segurança para contêineres em uma tarefa do Amazon ECS?

  5. Abra o console do Amazon ECS.

  6. No painel de navegação, selecione Definições de tarefa.

  7. Selecione sua definição de tarefa, escolha Ações e, em seguida, escolha Executar tarefa.

  8. Em Tipo de execução, escolha FARGATE.

  9. Em Cluster, escolha o cluster para sua definição de tarefa.

  10. Em Número de tarefas, insira o número de tarefas que você deseja executar.

  11. Na seção VPC e grupos de segurança, em VPC do cluster, escolha sua Amazon Virtual Private Cloud (Amazon VPC).

  12. Em Sub-redes, escolha suas sub-redes.

  13. Em Grupos de segurança, selecione pelo menos um grupo de segurança.

  14. Escolha Executar tarefa.

Quando sua tarefa está conectada ao seu banco de dados, o script rds.py interrompe a tarefa e exibe a seguinte mensagem:

"Essential container in task exited."

Confirmar se conectou sua tarefa ao seu banco de dados

Conclua as etapas a seguir:

  1. Abra o console do Amazon ECS.
  2. No painel de navegação, escolha Clusters e, em seguida, escolha seu cluster.
  3. Escolha a guia Tarefas.
  4. Em Status da tarefa desejada, para ver uma lista das tarefas interrompidas, escolha Interrompida.
  5. Escolha sua tarefa interrompida.
  6. Na guia Detalhes da tarefa interrompida, expanda a seção Contêineres.
  7. Escolha Exibir logs no CloudWatch.

Se você conectou sua tarefa ao seu banco de dados, a seguinte mensagem será exibida no console do CloudWatch:

"Connection successful to [your endpoint]"

AWS OFICIALAtualizada há 8 meses
1 Comentário

This article was reviewed and updated on 2026-02-01.

ESPECIALISTA

respondeu há 4 meses