Package com.pulumi.aws.ecs
Class Cluster
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.ecs.Cluster
-
public class Cluster extends com.pulumi.resources.CustomResourceProvides an ECS cluster. ## Example Usage
### Execute Command Configuration with Override Loggingpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ecs.Cluster; import com.pulumi.aws.ecs.ClusterArgs; import com.pulumi.aws.ecs.inputs.ClusterSettingArgs; import java.util.ArrayList; import java.util.Arrays; 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 foo = new Cluster("foo", ClusterArgs.builder() .settings(ClusterSettingArgs.builder() .name("containerInsights") .value("enabled") .build()) .name("white-hart") .build()); } }
### Fargate Ephemeral Storage Encryption with Customer-Managed KMS Keypackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.kms.Key; import com.pulumi.aws.kms.KeyArgs; import com.pulumi.aws.cloudwatch.LogGroup; import com.pulumi.aws.cloudwatch.LogGroupArgs; import com.pulumi.aws.ecs.Cluster; import com.pulumi.aws.ecs.ClusterArgs; import com.pulumi.aws.ecs.inputs.ClusterConfigurationArgs; import com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationArgs; import com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs; import java.util.ArrayList; import java.util.Arrays; 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 example = new Key("example", KeyArgs.builder() .description("example") .deletionWindowInDays(7) .build()); var exampleLogGroup = new LogGroup("exampleLogGroup", LogGroupArgs.builder() .name("example") .build()); var test = new Cluster("test", ClusterArgs.builder() .configuration(ClusterConfigurationArgs.builder() .executeCommandConfiguration(ClusterConfigurationExecuteCommandConfigurationArgs.builder() .logConfiguration(ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.builder() .cloudWatchEncryptionEnabled(true) .cloudWatchLogGroupName(exampleLogGroup.name()) .build()) .kmsKeyId(example.arn()) .logging("OVERRIDE") .build()) .build()) .name("example") .build()); } }
## Import ### Identity Schema #### Required * `name` (String) Name of the cluster. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import ECS clusters using the cluster name. For example: ```sh $ pulumi import aws:ecs/cluster:Cluster stateless stateless-app ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetCallerIdentityArgs; import com.pulumi.aws.kms.Key; import com.pulumi.aws.kms.KeyArgs; import com.pulumi.aws.kms.KeyPolicy; import com.pulumi.aws.kms.KeyPolicyArgs; import com.pulumi.aws.ecs.Cluster; import com.pulumi.aws.ecs.ClusterArgs; import com.pulumi.aws.ecs.inputs.ClusterConfigurationArgs; import com.pulumi.aws.ecs.inputs.ClusterConfigurationManagedStorageConfigurationArgs; import static com.pulumi.codegen.internal.Serialization.*; import com.pulumi.resources.CustomResourceOptions; import java.util.ArrayList; import java.util.Arrays; 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) { final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); var example = new Key("example", KeyArgs.builder() .description("example") .deletionWindowInDays(7) .build()); var exampleKeyPolicy = new KeyPolicy("exampleKeyPolicy", KeyPolicyArgs.builder() .keyId(example.id()) .policy(serializeJson( jsonObject( jsonProperty("Id", "ECSClusterFargatePolicy"), jsonProperty("Statement", jsonArray( jsonObject( jsonProperty("Sid", "Enable IAM User Permissions"), jsonProperty("Effect", "Allow"), jsonProperty("Principal", jsonObject( jsonProperty("AWS", "*") )), jsonProperty("Action", "kms:*"), jsonProperty("Resource", "*") ), jsonObject( jsonProperty("Sid", "Allow generate data key access for Fargate tasks."), jsonProperty("Effect", "Allow"), jsonProperty("Principal", jsonObject( jsonProperty("Service", "fargate.amazonaws.com") )), jsonProperty("Action", jsonArray("kms:GenerateDataKeyWithoutPlaintext")), jsonProperty("Condition", jsonObject( jsonProperty("StringEquals", jsonObject( jsonProperty("kms:EncryptionContext:aws:ecs:clusterAccount", jsonArray(current.accountId())), jsonProperty("kms:EncryptionContext:aws:ecs:clusterName", jsonArray("example")) )) )), jsonProperty("Resource", "*") ), jsonObject( jsonProperty("Sid", "Allow grant creation permission for Fargate tasks."), jsonProperty("Effect", "Allow"), jsonProperty("Principal", jsonObject( jsonProperty("Service", "fargate.amazonaws.com") )), jsonProperty("Action", jsonArray("kms:CreateGrant")), jsonProperty("Condition", jsonObject( jsonProperty("StringEquals", jsonObject( jsonProperty("kms:EncryptionContext:aws:ecs:clusterAccount", jsonArray(current.accountId())), jsonProperty("kms:EncryptionContext:aws:ecs:clusterName", jsonArray("example")) )), jsonProperty("ForAllValues:StringEquals", jsonObject( jsonProperty("kms:GrantOperations", jsonArray("Decrypt")) )) )), jsonProperty("Resource", "*") ) )), jsonProperty("Version", "2012-10-17") ))) .build()); var test = new Cluster("test", ClusterArgs.builder() .configuration(ClusterConfigurationArgs.builder() .managedStorageConfiguration(ClusterConfigurationManagedStorageConfigurationArgs.builder() .fargateEphemeralStorageKmsKeyId(example.arn()) .build()) .build()) .name("example") .build(), CustomResourceOptions.builder() .dependsOn(exampleKeyPolicy) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Cluster(java.lang.String name)Cluster(java.lang.String name, ClusterArgs args)Cluster(java.lang.String name, ClusterArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.util.Optional<ClusterConfiguration>>configuration()static Clusterget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ClusterState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<ClusterServiceConnectDefaults>>serviceConnectDefaults()com.pulumi.core.Output<java.util.List<ClusterSetting>>settings()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()
-
-
-
Constructor Detail
-
Cluster
public Cluster(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Cluster
public Cluster(java.lang.String name, @Nullable ClusterArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Cluster
public Cluster(java.lang.String name, @Nullable ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN that identifies the cluster.
-
configuration
public com.pulumi.core.Output<java.util.Optional<ClusterConfiguration>> configuration()
- Returns:
- Execute command configuration for the cluster. See `configuration` Block for details.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) The following arguments are optional:
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
serviceConnectDefaults
public com.pulumi.core.Output<java.util.Optional<ClusterServiceConnectDefaults>> serviceConnectDefaults()
- Returns:
- Default Service Connect namespace. See `serviceConnectDefaults` Block for details.
-
settings
public com.pulumi.core.Output<java.util.List<ClusterSetting>> settings()
- Returns:
- Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
get
public static Cluster get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-