我们需要在AWS ECS任务定义中设置RestartPolicy属性为'on-failure”或'any”,以便在实例失败时自动重新启动。
如果您使用的是AWS Fargate,则可以在AWS ECS任务定义中设置属性'requiresCompatibilities”为'FARGATE”和'cpu”和'memory”等其他必需属性。
此外,您需要配置您的Rebus消息处理程序以使用适当的超时配置,以确保它们能够正确地处理可能在一定时间后到达的消息。
以下是使用on-failure重启策略的示例AWS ECS任务定义:
{
"name": "my-task",
"taskRoleArn": "arn:aws:iam::123456789012:role/ecs-task-execution-role",
"executionRoleArn": "arn:aws:iam::123456789012:role/ecs-task-execution-role",
"cpu": "256",
"memory": "512",
"requiresCompatibilities": [
"EC2"
],
"containerDefinitions": [
{
"name": "my-container",
"image": "your-registry/image:tag",
"essential": true,
"memory": "128",
"cpu": "256",
"command": [
"dotnet",
"MyApp.dll"
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/my-task",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "my-container"
}
}
}
],
"restartPolicy": "on-failure",
"networkMode": "awsvpc"
}