Andrew Maturo
07/26/2024, 9:15 PMMarvin
07/26/2024, 9:15 PMpython
from prefect_aws import ECSTask
from prefect import flow
@flow
def my_flow():
print("Hello from ECS!")
ecs_task = ECSTask(
aws_credentials=aws_creds, # Replace with your AWS credentials
task_definition_arn='your-predefined-task-definition-arn',
stream_output=True,
cluster='your-ecs-cluster',
launch_type='FARGATE' # or 'FARGATE_SPOT'
)
ecs_task.save(name='my-ecs-task', overwrite=True)
my_flow.deploy(
name="my-ecs-deployment",
infra_overrides={"task_definition_arn": 'your-predefined-task-definition-arn'}
)
4. Predefined Task Definitions:
If using predefined task definitions, ensure consistency to avoid re-registration. Example of using a predefined task:
python
task_definition = 'arn:aws:ecs:<region>:<account_id>:task-definition/<definition-name>'
ecs_task = ECSTask(
task_definition_arn=task_definition,
stream_output=True,
cluster='your-ecs-cluster',
launch_type='FARGATE',
)
For more details, refer to the ECS integration docs and check related GitHub issues.
If you face issues, make sure your ARN format is correct and verify ECS Task Definition registration doesn't exceed AWS rate limits.