要解决"Amazon ECS: Task definition does not support FARGATE launch type."错误,您需要更改任务定义中的启动类型为EC2。以下是一个代码示例,演示如何使用AWS SDK for Python(Boto3)更改任务定义的启动类型:
import boto3
# 创建 ECS 客户端
ecs_client = boto3.client('ecs')
# 定义要更改的任务定义
task_definition = 'your-task-definition'
# 获取现有的任务定义
response = ecs_client.describe_task_definition(
taskDefinition=task_definition
)
# 修改启动类型为 EC2
response['taskDefinition']['requiresCompatibilities'] = ['EC2']
# 更新任务定义
response = ecs_client.register_task_definition(
family=response['taskDefinition']['family'],
containerDefinitions=response['taskDefinition']['containerDefinitions'],
requiresCompatibilities=response['taskDefinition']['requiresCompatibilities'],
taskRoleArn=response['taskDefinition']['taskRoleArn'],
executionRoleArn=response['taskDefinition']['executionRoleArn'],
networkMode=response['taskDefinition']['networkMode'],
cpu=response['taskDefinition']['cpu'],
memory=response['taskDefinition']['memory'],
volumes=response['taskDefinition']['volumes']
)
print("任务定义已成功更新为 EC2 启动类型。")
请确保您已正确配置 AWS 访问凭证,并将your-task-definition替换为您要更新的任务定义的名称。运行此代码后,任务定义的启动类型将更改为EC2。