• Как указать какой IP-адрес использовать в веб-сокете на python?

    @ttmje Автор вопроса
    Объясню более подробно. У меня есть машина с несколькими сетевыми интерфейсами. Я хочу открыть вебсокет соединение со сторонним публичным сервером (его настройки мне не известны). При этом, мне нужна возможность выбора локального интерфейса, который будет обращаться к этому сокету.
  • Как автоматически перезапускать таск в ECS при пуше нового image?

    @ttmje Автор вопроса
    Vitaly Karasik, Огромное спасибо! Это помогло.
    Нужно было в amazon-ecs-deploy-task-definitio указать название сервиса.
  • Как автоматически перезапускать таск в ECS при пуше нового image?

    @ttmje Автор вопроса
    Vitaly Karasik, Таск бежит на fargate

    Делаю через github-actions
    623811dcd6eb8611592451.png
  • Как автоматически перезапускать таск в ECS при пуше нового image?

    @ttmje Автор вопроса
    Vitaly Karasik, Спасибо за помощь. Сейчас бежит девятая версия. Вот ее описание.
    Task Definition: tenders:9
    {
    "ipcMode": null,
    "executionRoleArn": "arn:aws:iam::948206608465:role/ecsTaskExecutionRole",
    "containerDefinitions": [
    {
    "dnsSearchDomains": null,
    "environmentFiles": null,
    "logConfiguration": {
    "logDriver": "awslogs",
    "secretOptions": null,
    "options": {
    "awslogs-group": "/ecs/tenders",
    "awslogs-region": "us-east-1",
    "awslogs-stream-prefix": "ecs"
    }
    },
    "entryPoint": null,
    "portMappings": [
    {
    "hostPort": 80,
    "protocol": "tcp",
    "containerPort": 80
    }
    ],
    "command": null,
    "linuxParameters": null,
    "cpu": 0,
    "environment": [],
    "resourceRequirements": null,
    "ulimits": null,
    "dnsServers": null,
    "mountPoints": [],
    "workingDirectory": null,
    "secrets": null,
    "dockerSecurityOptions": null,
    "memory": null,
    "memoryReservation": null,
    "volumesFrom": [],
    "stopTimeout": null,
    "image": "948206608465.dkr.ecr.us-east-1.amazonaws.com/tender_notify:2b9501a0746c4158f7914f49e89159118448e625",
    "startTimeout": null,
    "firelensConfiguration": null,
    "dependsOn": null,
    "disableNetworking": null,
    "interactive": null,
    "healthCheck": null,
    "essential": true,
    "links": null,
    "hostname": null,
    "extraHosts": null,
    "pseudoTerminal": null,
    "user": null,
    "readonlyRootFilesystem": null,
    "dockerLabels": null,
    "systemControls": null,
    "privileged": null,
    "name": "notify"
    }
    ],
    "placementConstraints": [],
    "memory": "512",
    "taskRoleArn": null,
    "compatibilities": [
    "EC2",
    "FARGATE"
    ],
    "taskDefinitionArn": "arn:aws:ecs:us-east-1:948206608465:task-definition/tenders:9",
    "family": "tenders",
    "requiresAttributes": [
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.execution-role-awslogs"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.ecr-auth"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.execution-role-ecr-pull"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.task-eni"
    }
    ],
    "pidMode": null,
    "requiresCompatibilities": [
    "FARGATE"
    ],
    "networkMode": "awsvpc",
    "runtimePlatform": null,
    "cpu": "256",
    "revision": 9,
    "status": "ACTIVE",
    "inferenceAccelerators": null,
    "proxyConfiguration": null,
    "volumes": []
    }


    Только что запушил 10ю версию и сделал, чтобы тег у имеджа был хешем коммита. Но почему то как бежала 9я версия таска так и осталась. Где-то я делаю что-то не так. В табах tasks/events/Deployments ничего, ктороме текущего 9 таска нет. Прикладываю обе версии для сравнения.

    tenders:10
    {
    "ipcMode": null,
    "executionRoleArn": "arn:aws:iam::948206608465:role/ecsTaskExecutionRole",
    "containerDefinitions": [
    {
    "dnsSearchDomains": null,
    "environmentFiles": null,
    "logConfiguration": {
    "logDriver": "awslogs",
    "secretOptions": null,
    "options": {
    "awslogs-group": "/ecs/tenders",
    "awslogs-region": "us-east-1",
    "awslogs-stream-prefix": "ecs"
    }
    },
    "entryPoint": null,
    "portMappings": [
    {
    "hostPort": 80,
    "protocol": "tcp",
    "containerPort": 80
    }
    ],
    "command": null,
    "linuxParameters": null,
    "cpu": 0,
    "environment": [],
    "resourceRequirements": null,
    "ulimits": null,
    "dnsServers": null,
    "mountPoints": [],
    "workingDirectory": null,
    "secrets": null,
    "dockerSecurityOptions": null,
    "memory": null,
    "memoryReservation": null,
    "volumesFrom": [],
    "stopTimeout": null,
    "image": "948206608465.dkr.ecr.us-east-1.amazonaws.com/tender_notify:fbad76ea37a79bf3d9947f30128242cf066973c8",
    "startTimeout": null,
    "firelensConfiguration": null,
    "dependsOn": null,
    "disableNetworking": null,
    "interactive": null,
    "healthCheck": null,
    "essential": true,
    "links": null,
    "hostname": null,
    "extraHosts": null,
    "pseudoTerminal": null,
    "user": null,
    "readonlyRootFilesystem": null,
    "dockerLabels": null,
    "systemControls": null,
    "privileged": null,
    "name": "notify"
    }
    ],
    "placementConstraints": [],
    "memory": "512",
    "taskRoleArn": null,
    "compatibilities": [
    "EC2",
    "FARGATE"
    ],
    "taskDefinitionArn": "arn:aws:ecs:us-east-1:948206608465:task-definition/tenders:10",
    "family": "tenders",
    "requiresAttributes": [
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.execution-role-awslogs"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.ecr-auth"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.execution-role-ecr-pull"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.task-eni"
    }
    ],
    "pidMode": null,
    "requiresCompatibilities": [
    "FARGATE"
    ],
    "networkMode": "awsvpc",
    "runtimePlatform": null,
    "cpu": "256",
    "revision": 10,
    "status": "ACTIVE",
    "inferenceAccelerators": null,
    "proxyConfiguration": null,
    "volumes": []
    }
  • Как автоматически перезапускать таск в ECS при пуше нового image?

    @ttmje Автор вопроса
    Vitaly Karasik, Сейчас в кластере бежит вот эта версия таска (7я версия)
    Task Definition
    {
    "ipcMode": null,
    "executionRoleArn": "arn:aws:iam::948206608465:role/ecsTaskExecutionRole",
    "containerDefinitions": [
    {
    "dnsSearchDomains": null,
    "environmentFiles": null,
    "logConfiguration": {
    "logDriver": "awslogs",
    "secretOptions": null,
    "options": {
    "awslogs-group": "/ecs/tenders",
    "awslogs-region": "us-east-1",
    "awslogs-stream-prefix": "ecs"
    }
    },
    "entryPoint": null,
    "portMappings": [
    {
    "hostPort": 80,
    "protocol": "tcp",
    "containerPort": 80
    }
    ],
    "command": null,
    "linuxParameters": null,
    "cpu": 0,
    "environment": [],
    "resourceRequirements": null,
    "ulimits": null,
    "dnsServers": null,
    "mountPoints": [],
    "workingDirectory": null,
    "secrets": null,
    "dockerSecurityOptions": null,
    "memory": null,
    "memoryReservation": null,
    "volumesFrom": [],
    "stopTimeout": null,
    "image": "948206608465.dkr.ecr.us-east-1.amazonaws.com/tender_notify:latest",
    "startTimeout": null,
    "firelensConfiguration": null,
    "dependsOn": null,
    "disableNetworking": null,
    "interactive": null,
    "healthCheck": null,
    "essential": true,
    "links": null,
    "hostname": null,
    "extraHosts": null,
    "pseudoTerminal": null,
    "user": null,
    "readonlyRootFilesystem": null,
    "dockerLabels": null,
    "systemControls": null,
    "privileged": null,
    "name": "notify"
    }
    ],
    "placementConstraints": [],
    "memory": "512",
    "taskRoleArn": null,
    "compatibilities": [
    "EC2",
    "FARGATE"
    ],
    "taskDefinitionArn": "arn:aws:ecs:us-east-1:948206608465:task-definition/tenders:7",
    "family": "tenders",
    "requiresAttributes": [
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.execution-role-awslogs"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.ecr-auth"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.execution-role-ecr-pull"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
    },
    {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "ecs.capability.task-eni"
    }
    ],
    "pidMode": null,
    "requiresCompatibilities": [
    "FARGATE"
    ],
    "networkMode": "awsvpc",
    "runtimePlatform": null,
    "cpu": "256",
    "revision": 7,
    "status": "ACTIVE",
    "inferenceAccelerators": null,
    "proxyConfiguration": null,
    "volumes": []
    }


    После этой версии я запушил еще две: 8 и 9, соответственно. Сервис как крутил 7ю версию так и продолжает.

    62376bcce77bc097567113.png
    62376bd1cd4d1580374437.png
  • Как автоматически перезапускать таск в ECS при пуше нового image?

    @ttmje Автор вопроса
    Почти освоился. Остался вопрос:
    При использовании aws-actions/amazon-ecs-render-task-definition и aws-actions/amazon-ecs-deploy-task-definition новая версия таска с новым имеджем попадает в кластер - все ок.
    Но автоматически кластер новую версию таска не запускает. Как можно это сделать?
  • Как задеплоить Python бота на AWS Beanstalk?

    @ttmje Автор вопроса
    Кажется, я частично понял проблему.
    Все же не устанавливаются зависимости. 621f8d2973947622376348.png

    При запуске файла ругается, что нет модуля requests
    При установке модуля через pip или через requrements - модуль есть.
    ЧЯДНТ?