AWS v6.60.0 published on Tuesday, Nov 19, 2024 by Pulumi
aws.ecs.getTaskDefinition
Explore with Pulumi AI
The ECS task definition data source allows access to details of a specific AWS ECS task definition.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const mongoTaskDefinition = new aws.ecs.TaskDefinition("mongo", {
family: "mongodb",
containerDefinitions: `[
{
"cpu": 128,
"environment": [{
"name": "SECRET",
"value": "KEY"
}],
"essential": true,
"image": "mongo:latest",
"memory": 128,
"memoryReservation": 64,
"name": "mongodb"
}
]
`,
});
// Simply specify the family to find the latest ACTIVE revision in that family.
const mongo = aws.ecs.getTaskDefinitionOutput({
taskDefinition: mongoTaskDefinition.family,
});
const foo = new aws.ecs.Cluster("foo", {name: "foo"});
const mongoService = new aws.ecs.Service("mongo", {
name: "mongo",
cluster: foo.id,
desiredCount: 2,
taskDefinition: mongo.apply(mongo => mongo.arn),
});
import pulumi
import pulumi_aws as aws
mongo_task_definition = aws.ecs.TaskDefinition("mongo",
family="mongodb",
container_definitions="""[
{
"cpu": 128,
"environment": [{
"name": "SECRET",
"value": "KEY"
}],
"essential": true,
"image": "mongo:latest",
"memory": 128,
"memoryReservation": 64,
"name": "mongodb"
}
]
""")
# Simply specify the family to find the latest ACTIVE revision in that family.
mongo = aws.ecs.get_task_definition_output(task_definition=mongo_task_definition.family)
foo = aws.ecs.Cluster("foo", name="foo")
mongo_service = aws.ecs.Service("mongo",
name="mongo",
cluster=foo.id,
desired_count=2,
task_definition=mongo.arn)
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
mongoTaskDefinition, err := ecs.NewTaskDefinition(ctx, "mongo", &ecs.TaskDefinitionArgs{
Family: pulumi.String("mongodb"),
ContainerDefinitions: pulumi.String(`[
{
"cpu": 128,
"environment": [{
"name": "SECRET",
"value": "KEY"
}],
"essential": true,
"image": "mongo:latest",
"memory": 128,
"memoryReservation": 64,
"name": "mongodb"
}
]
`),
})
if err != nil {
return err
}
// Simply specify the family to find the latest ACTIVE revision in that family.
mongo := ecs.LookupTaskDefinitionOutput(ctx, ecs.GetTaskDefinitionOutputArgs{
TaskDefinition: mongoTaskDefinition.Family,
}, nil)
foo, err := ecs.NewCluster(ctx, "foo", &ecs.ClusterArgs{
Name: pulumi.String("foo"),
})
if err != nil {
return err
}
_, err = ecs.NewService(ctx, "mongo", &ecs.ServiceArgs{
Name: pulumi.String("mongo"),
Cluster: foo.ID(),
DesiredCount: pulumi.Int(2),
TaskDefinition: pulumi.String(mongo.ApplyT(func(mongo ecs.GetTaskDefinitionResult) (*string, error) {
return &mongo.Arn, nil
}).(pulumi.StringPtrOutput)),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var mongoTaskDefinition = new Aws.Ecs.TaskDefinition("mongo", new()
{
Family = "mongodb",
ContainerDefinitions = @"[
{
""cpu"": 128,
""environment"": [{
""name"": ""SECRET"",
""value"": ""KEY""
}],
""essential"": true,
""image"": ""mongo:latest"",
""memory"": 128,
""memoryReservation"": 64,
""name"": ""mongodb""
}
]
",
});
// Simply specify the family to find the latest ACTIVE revision in that family.
var mongo = Aws.Ecs.GetTaskDefinition.Invoke(new()
{
TaskDefinition = mongoTaskDefinition.Family,
});
var foo = new Aws.Ecs.Cluster("foo", new()
{
Name = "foo",
});
var mongoService = new Aws.Ecs.Service("mongo", new()
{
Name = "mongo",
Cluster = foo.Id,
DesiredCount = 2,
TaskDefinition = mongo.Apply(getTaskDefinitionResult => getTaskDefinitionResult.Arn),
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.EcsFunctions;
import com.pulumi.aws.ecs.inputs.GetTaskDefinitionArgs;
import com.pulumi.aws.ecs.Cluster;
import com.pulumi.aws.ecs.ClusterArgs;
import com.pulumi.aws.ecs.Service;
import com.pulumi.aws.ecs.ServiceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var mongoTaskDefinition = new TaskDefinition("mongoTaskDefinition", TaskDefinitionArgs.builder()
.family("mongodb")
.containerDefinitions("""
[
{
"cpu": 128,
"environment": [{
"name": "SECRET",
"value": "KEY"
}],
"essential": true,
"image": "mongo:latest",
"memory": 128,
"memoryReservation": 64,
"name": "mongodb"
}
]
""")
.build());
// Simply specify the family to find the latest ACTIVE revision in that family.
final var mongo = EcsFunctions.getTaskDefinition(GetTaskDefinitionArgs.builder()
.taskDefinition(mongoTaskDefinition.family())
.build());
var foo = new Cluster("foo", ClusterArgs.builder()
.name("foo")
.build());
var mongoService = new Service("mongoService", ServiceArgs.builder()
.name("mongo")
.cluster(foo.id())
.desiredCount(2)
.taskDefinition(mongo.applyValue(getTaskDefinitionResult -> getTaskDefinitionResult).applyValue(mongo -> mongo.applyValue(getTaskDefinitionResult -> getTaskDefinitionResult.arn())))
.build());
}
}
resources:
foo:
type: aws:ecs:Cluster
properties:
name: foo
mongoTaskDefinition:
type: aws:ecs:TaskDefinition
name: mongo
properties:
family: mongodb
containerDefinitions: |
[
{
"cpu": 128,
"environment": [{
"name": "SECRET",
"value": "KEY"
}],
"essential": true,
"image": "mongo:latest",
"memory": 128,
"memoryReservation": 64,
"name": "mongodb"
}
]
mongoService:
type: aws:ecs:Service
name: mongo
properties:
name: mongo
cluster: ${foo.id}
desiredCount: 2 # Track the latest ACTIVE revision
taskDefinition: ${mongo.arn}
variables:
# Simply specify the family to find the latest ACTIVE revision in that family.
mongo:
fn::invoke:
Function: aws:ecs:getTaskDefinition
Arguments:
taskDefinition: ${mongoTaskDefinition.family}
Using getTaskDefinition
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getTaskDefinition(args: GetTaskDefinitionArgs, opts?: InvokeOptions): Promise<GetTaskDefinitionResult>
function getTaskDefinitionOutput(args: GetTaskDefinitionOutputArgs, opts?: InvokeOptions): Output<GetTaskDefinitionResult>
def get_task_definition(task_definition: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetTaskDefinitionResult
def get_task_definition_output(task_definition: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetTaskDefinitionResult]
func LookupTaskDefinition(ctx *Context, args *LookupTaskDefinitionArgs, opts ...InvokeOption) (*LookupTaskDefinitionResult, error)
func LookupTaskDefinitionOutput(ctx *Context, args *LookupTaskDefinitionOutputArgs, opts ...InvokeOption) LookupTaskDefinitionResultOutput
> Note: This function is named LookupTaskDefinition
in the Go SDK.
public static class GetTaskDefinition
{
public static Task<GetTaskDefinitionResult> InvokeAsync(GetTaskDefinitionArgs args, InvokeOptions? opts = null)
public static Output<GetTaskDefinitionResult> Invoke(GetTaskDefinitionInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetTaskDefinitionResult> getTaskDefinition(GetTaskDefinitionArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
function: aws:ecs/getTaskDefinition:getTaskDefinition
arguments:
# arguments dictionary
The following arguments are supported:
- Task
Definition string - Family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, the ARN of the task definition to access to.
- Task
Definition string - Family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, the ARN of the task definition to access to.
- task
Definition String - Family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, the ARN of the task definition to access to.
- task
Definition string - Family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, the ARN of the task definition to access to.
- task_
definition str - Family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, the ARN of the task definition to access to.
- task
Definition String - Family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, the ARN of the task definition to access to.
getTaskDefinition Result
The following output properties are available:
- Arn string
- ARN of the task definition.
- Arn
Without stringRevision - ARN of the Task Definition with the trailing
revision
removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Execution
Role stringArn - ARN of the task execution role that the Amazon ECS container agent and the Docker.
- Family string
- Family of this task definition.
- Id string
- The provider-assigned unique ID for this managed resource.
- Network
Mode string - Docker networking mode to use for the containers in this task.
- Revision int
- Revision of this task definition.
- Status string
- Status of this task definition.
- Task
Definition string - Task
Role stringArn - ARN of the IAM role that containers in this task can assume.
- Arn string
- ARN of the task definition.
- Arn
Without stringRevision - ARN of the Task Definition with the trailing
revision
removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Execution
Role stringArn - ARN of the task execution role that the Amazon ECS container agent and the Docker.
- Family string
- Family of this task definition.
- Id string
- The provider-assigned unique ID for this managed resource.
- Network
Mode string - Docker networking mode to use for the containers in this task.
- Revision int
- Revision of this task definition.
- Status string
- Status of this task definition.
- Task
Definition string - Task
Role stringArn - ARN of the IAM role that containers in this task can assume.
- arn String
- ARN of the task definition.
- arn
Without StringRevision - ARN of the Task Definition with the trailing
revision
removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - execution
Role StringArn - ARN of the task execution role that the Amazon ECS container agent and the Docker.
- family String
- Family of this task definition.
- id String
- The provider-assigned unique ID for this managed resource.
- network
Mode String - Docker networking mode to use for the containers in this task.
- revision Integer
- Revision of this task definition.
- status String
- Status of this task definition.
- task
Definition String - task
Role StringArn - ARN of the IAM role that containers in this task can assume.
- arn string
- ARN of the task definition.
- arn
Without stringRevision - ARN of the Task Definition with the trailing
revision
removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - execution
Role stringArn - ARN of the task execution role that the Amazon ECS container agent and the Docker.
- family string
- Family of this task definition.
- id string
- The provider-assigned unique ID for this managed resource.
- network
Mode string - Docker networking mode to use for the containers in this task.
- revision number
- Revision of this task definition.
- status string
- Status of this task definition.
- task
Definition string - task
Role stringArn - ARN of the IAM role that containers in this task can assume.
- arn str
- ARN of the task definition.
- arn_
without_ strrevision - ARN of the Task Definition with the trailing
revision
removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - execution_
role_ strarn - ARN of the task execution role that the Amazon ECS container agent and the Docker.
- family str
- Family of this task definition.
- id str
- The provider-assigned unique ID for this managed resource.
- network_
mode str - Docker networking mode to use for the containers in this task.
- revision int
- Revision of this task definition.
- status str
- Status of this task definition.
- task_
definition str - task_
role_ strarn - ARN of the IAM role that containers in this task can assume.
- arn String
- ARN of the task definition.
- arn
Without StringRevision - ARN of the Task Definition with the trailing
revision
removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - execution
Role StringArn - ARN of the task execution role that the Amazon ECS container agent and the Docker.
- family String
- Family of this task definition.
- id String
- The provider-assigned unique ID for this managed resource.
- network
Mode String - Docker networking mode to use for the containers in this task.
- revision Number
- Revision of this task definition.
- status String
- Status of this task definition.
- task
Definition String - task
Role StringArn - ARN of the IAM role that containers in this task can assume.
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
aws
Terraform Provider.