gpt4 book ai didi

python - AWS ECS - 使用 Boto3 更新任务定义

转载 作者:行者123 更新时间:2023-12-05 02:37:59 24 4
gpt4 key购买 nike

使用 boto3,我们可以创建一个新的任务定义:

client = boto3.client('ecs')
client.register_task_definition(...)

我们如何更新现有的任务定义?这只是另一个有变化且姓氏相同的电话吗?

最佳答案

如上所述,您必须使用 register_task_definition 为任务定义创建新修订。非常烦人的是,即使您可能只想更改 1,您也必须再次传入所有参数。这将创建一个新修订版。

这非常烦人,因为这是标准 ECS 部署的工作流程。即使用更新的图像标签创建新的任务定义修订。为什么没有一些内置功能...

我所做的只是调用 describe_task_definition,更新响应字典以修改您想要的内容,删除任何不能在 kwargs 中用于调用 register_task_definition 的键,然后调用 register_task_definition 并传入该字典。对我来说很好用。 :

existing_task_def_response = ecs_client.describe_task_definition(
taskDefinition=ecs_task_definition_name,
)
new_task_definition = existing_task_def_response['taskDefinition']
#edit the image tag here
new_task_definition['containerDefinitions'][0]['image'] = yournewimagetagforexample

#drop all the keys from the dict that you can't use as kwargs in the next call. could be explicit here and map things
remove_args=['compatibilities', 'registeredAt', 'registeredBy', 'status', 'revision', 'taskDefinitionArn', 'requiresAttributes' ]
for arg in remove_args:
new_task_definition.pop(arg)

reg_task_def_response = ecs_client.register_task_definition(
**new_task_definition
)

关于python - AWS ECS - 使用 Boto3 更新任务定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69830579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com