文件AWS開發套件範例 GitHub 儲存庫中有更多可用的 AWSSDK 範例。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
DeregisterTaskDefinition 搭配 AWSSDK 或 CLI 使用
下列程式碼範例示範如何使用 DeregisterTaskDefinition。
動作範例是大型程式的程式碼摘錄,必須在內容中執行。您可以在下列程式碼範例的內容中看到此動作:
- CLI
-
- AWS CLI
-
取消註冊任務定義
下列 deregister-task-definition 範例會取消註冊預設區域中 curler 任務定義的第一個修訂版。
aws ecs deregister-task-definition --task-definition curler:1
請注意,在結果輸出中,任務定義狀態顯示 INACTIVE:
{
"taskDefinition": {
"status": "INACTIVE",
"family": "curler",
"volumes": [],
"taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/curler:1",
"containerDefinitions": [
{
"environment": [],
"name": "curler",
"mountPoints": [],
"image": "curl:latest",
"cpu": 100,
"portMappings": [],
"entryPoint": [],
"memory": 256,
"command": [
"curl -v http://example.com/"
],
"essential": true,
"volumesFrom": []
}
],
"revision": 1
}
}
如需詳細資訊,請參閱《Amazon ECS 開發人員指南》中的 Amazon ECS 任務定義。
- Python
-
- 適用於 Python 的 SDK (Boto3)
-
class EcsWrapper:
"""Encapsulates Amazon ECS operations."""
def __init__(self, ecs_client: BaseClient):
"""
Initializes the EcsWrapper with an ECS client.
:param ecs_client: A Boto3 Amazon ECS client. Boto3 clients are created
by the ``boto3.client`` factory function and are instances of
``botocore.client.BaseClient``, which is the correct type to
annotate here (``boto3.client`` itself is a function, not a type).
"""
self.ecs_client = ecs_client
@classmethod
def from_client(cls) -> "EcsWrapper":
"""Creates an EcsWrapper using a default Boto3 ECS client."""
ecs_client = boto3.client("ecs")
return cls(ecs_client)
def deregister_task_definition(self, task_definition: str) -> Dict[str, Any]:
"""
Deregisters a task definition.
:param task_definition: The family:revision of the task definition.
:return: The deregistered task definition details.
:raises ClientError: If the request fails (e.g., InvalidParameterException).
"""
try:
response = self.ecs_client.deregister_task_definition(
taskDefinition=task_definition,
)
task_def = response["taskDefinition"]
logger.info(
"Deregistered task definition '%s' (status: %s)",
task_def["taskDefinitionArn"],
task_def["status"],
)
return task_def
except ClientError as err:
if err.response["Error"]["Code"] == "InvalidParameterException":
logger.error(
"Invalid parameter when deregistering task definition '%s': %s",
task_definition,
err.response["Error"]["Message"],
)
raise