Package com.pulumi.aws.mwaa
Class Environment
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.mwaa.Environment
-
public class Environment extends com.pulumi.resources.CustomResourceCreates a MWAA Environment resource. ## Example Usage A MWAA Environment requires an IAM role (`aws.iam.Role`), two subnets in the private zone (`aws.ec2.Subnet`) and a versioned S3 bucket (`aws.s3.Bucket`). ### Basic Usage
### Example with Airflow configuration optionspackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.mwaa.Environment; import com.pulumi.aws.mwaa.EnvironmentArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentNetworkConfigurationArgs; 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 Environment("example", EnvironmentArgs.builder() .networkConfiguration(EnvironmentNetworkConfigurationArgs.builder() .securityGroupIds(exampleAwsSecurityGroup.id()) .subnetIds(private_.stream().map(element -> element.id()).collect(toList())) .build()) .dagS3Path("dags/") .executionRoleArn(exampleAwsIamRole.arn()) .name("example") .sourceBucketArn(exampleAwsS3Bucket.arn()) .build()); } }
### Example with logging configurations Note that Airflow task logs are enabled by default with the `INFO` log level.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.mwaa.Environment; import com.pulumi.aws.mwaa.EnvironmentArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentNetworkConfigurationArgs; 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 Environment("example", EnvironmentArgs.builder() .networkConfiguration(EnvironmentNetworkConfigurationArgs.builder() .securityGroupIds(exampleAwsSecurityGroup.id()) .subnetIds(private_.stream().map(element -> element.id()).collect(toList())) .build()) .airflowConfigurationOptions(Map.ofEntries( Map.entry("core.default_task_retries", "16"), Map.entry("core.parallelism", "1") )) .dagS3Path("dags/") .executionRoleArn(exampleAwsIamRole.arn()) .name("example") .sourceBucketArn(exampleAwsS3Bucket.arn()) .build()); } }
### Example with tagspackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.mwaa.Environment; import com.pulumi.aws.mwaa.EnvironmentArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentLoggingConfigurationArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentLoggingConfigurationDagProcessingLogsArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentLoggingConfigurationSchedulerLogsArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentLoggingConfigurationTaskLogsArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentLoggingConfigurationWebserverLogsArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentLoggingConfigurationWorkerLogsArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentNetworkConfigurationArgs; 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 Environment("example", EnvironmentArgs.builder() .loggingConfiguration(EnvironmentLoggingConfigurationArgs.builder() .dagProcessingLogs(EnvironmentLoggingConfigurationDagProcessingLogsArgs.builder() .enabled(true) .logLevel("DEBUG") .build()) .schedulerLogs(EnvironmentLoggingConfigurationSchedulerLogsArgs.builder() .enabled(true) .logLevel("INFO") .build()) .taskLogs(EnvironmentLoggingConfigurationTaskLogsArgs.builder() .enabled(true) .logLevel("WARNING") .build()) .webserverLogs(EnvironmentLoggingConfigurationWebserverLogsArgs.builder() .enabled(true) .logLevel("ERROR") .build()) .workerLogs(EnvironmentLoggingConfigurationWorkerLogsArgs.builder() .enabled(true) .logLevel("CRITICAL") .build()) .build()) .networkConfiguration(EnvironmentNetworkConfigurationArgs.builder() .securityGroupIds(exampleAwsSecurityGroup.id()) .subnetIds(private_.stream().map(element -> element.id()).collect(toList())) .build()) .dagS3Path("dags/") .executionRoleArn(exampleAwsIamRole.arn()) .name("example") .sourceBucketArn(exampleAwsS3Bucket.arn()) .build()); } }
## Import Using `pulumi import`, import MWAA Environment using `Name`. For example: ```sh $ pulumi import aws:mwaa/environment:Environment example MyAirflowEnvironment ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.mwaa.Environment; import com.pulumi.aws.mwaa.EnvironmentArgs; import com.pulumi.aws.mwaa.inputs.EnvironmentNetworkConfigurationArgs; 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 Environment("example", EnvironmentArgs.builder() .networkConfiguration(EnvironmentNetworkConfigurationArgs.builder() .securityGroupIds(exampleAwsSecurityGroup.id()) .subnetIds(private_.stream().map(element -> element.id()).collect(toList())) .build()) .dagS3Path("dags/") .executionRoleArn(exampleAwsIamRole.arn()) .name("example") .sourceBucketArn(exampleAwsS3Bucket.arn()) .tags(Map.ofEntries( Map.entry("Name", "example"), Map.entry("Environment", "production") )) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Environment(java.lang.String name)Environment(java.lang.String name, EnvironmentArgs args)Environment(java.lang.String name, EnvironmentArgs 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.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>airflowConfigurationOptions()com.pulumi.core.Output<java.lang.String>airflowVersion()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.lang.String>createdAt()com.pulumi.core.Output<java.lang.String>dagS3Path()com.pulumi.core.Output<java.lang.String>databaseVpcEndpointService()com.pulumi.core.Output<java.lang.String>endpointManagement()com.pulumi.core.Output<java.lang.String>environmentClass()com.pulumi.core.Output<java.lang.String>executionRoleArn()static Environmentget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, EnvironmentState 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.util.Optional<java.lang.String>>kmsKey()com.pulumi.core.Output<java.util.List<EnvironmentLastUpdated>>lastUpdateds()com.pulumi.core.Output<EnvironmentLoggingConfiguration>loggingConfiguration()com.pulumi.core.Output<java.lang.Integer>maxWebservers()com.pulumi.core.Output<java.lang.Integer>maxWorkers()com.pulumi.core.Output<java.lang.Integer>minWebservers()com.pulumi.core.Output<java.lang.Integer>minWorkers()com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<EnvironmentNetworkConfiguration>networkConfiguration()com.pulumi.core.Output<java.lang.String>pluginsS3ObjectVersion()com.pulumi.core.Output<java.util.Optional<java.lang.String>>pluginsS3Path()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>requirementsS3ObjectVersion()com.pulumi.core.Output<java.util.Optional<java.lang.String>>requirementsS3Path()com.pulumi.core.Output<java.lang.Integer>schedulers()com.pulumi.core.Output<java.lang.String>serviceRoleArn()com.pulumi.core.Output<java.lang.String>sourceBucketArn()com.pulumi.core.Output<java.lang.String>startupScriptS3ObjectVersion()com.pulumi.core.Output<java.util.Optional<java.lang.String>>startupScriptS3Path()com.pulumi.core.Output<java.lang.String>status()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()com.pulumi.core.Output<java.lang.String>webserverAccessMode()com.pulumi.core.Output<java.lang.String>webserverUrl()com.pulumi.core.Output<java.lang.String>webserverVpcEndpointService()com.pulumi.core.Output<java.lang.String>weeklyMaintenanceWindowStart()com.pulumi.core.Output<java.lang.String>workerReplacementStrategy()
-
-
-
Constructor Detail
-
Environment
public Environment(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Environment
public Environment(java.lang.String name, EnvironmentArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Environment
public Environment(java.lang.String name, EnvironmentArgs 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
-
airflowConfigurationOptions
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> airflowConfigurationOptions()
- Returns:
- Airflow override options. Check the [Official documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html#configuring-env-variables-reference) for all possible configuration options.
-
airflowVersion
public com.pulumi.core.Output<java.lang.String> airflowVersion()
- Returns:
- Airflow version of your environment, will be set by default to the latest version that MWAA supports.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the MWAA Environment.
-
createdAt
public com.pulumi.core.Output<java.lang.String> createdAt()
- Returns:
- Date and time the environment was last updated.
-
dagS3Path
public com.pulumi.core.Output<java.lang.String> dagS3Path()
- Returns:
- Relative path to the DAG folder on your Amazon S3 storage bucket. For example, dags. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
-
databaseVpcEndpointService
public com.pulumi.core.Output<java.lang.String> databaseVpcEndpointService()
- Returns:
- VPC endpoint for the environment's Amazon RDS database.
-
endpointManagement
public com.pulumi.core.Output<java.lang.String> endpointManagement()
- Returns:
- Whether the VPC endpoints configured for the environment are created and managed by the customer or by AWS. If set to `SERVICE`, Amazon MWAA will create and manage the required VPC endpoints in your VPC. If set to `CUSTOMER`, you must create, and manage, the VPC endpoints for your VPC. Defaults to `SERVICE` if not set.
-
environmentClass
public com.pulumi.core.Output<java.lang.String> environmentClass()
- Returns:
- Environment class for the cluster. Possible options are `mw1.micro`, `mw1.small`, `mw1.medium`, `mw1.large`. Will be set by default to `mw1.small`. Please check the [AWS Pricing](https://aws.amazon.com/de/managed-workflows-for-apache-airflow/pricing/) for more information about the environment classes.
-
executionRoleArn
public com.pulumi.core.Output<java.lang.String> executionRoleArn()
- Returns:
- ARN of the task execution role that the Amazon MWAA and its environment can assume. Check the [official AWS documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html) for the detailed role specification.
-
kmsKey
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> kmsKey()
- Returns:
- ARN of your KMS key that you want to use for encryption. Will be set to the ARN of the managed KMS key `aws/airflow` by default. Please check the [Official Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/custom-keys-certs.html) for more information.
-
lastUpdateds
public com.pulumi.core.Output<java.util.List<EnvironmentLastUpdated>> lastUpdateds()
- Returns:
- Information about the last update of the environment. See `lastUpdated` Block for details.
-
loggingConfiguration
public com.pulumi.core.Output<EnvironmentLoggingConfiguration> loggingConfiguration()
- Returns:
- Apache Airflow logs you want to send to Amazon CloudWatch Logs. See `loggingConfiguration` Block for details.
-
maxWebservers
public com.pulumi.core.Output<java.lang.Integer> maxWebservers()
- Returns:
- Maximum number of web servers that you want to run in your environment. Value need to be between `2` and `5` if `environmentClass` is not `mw1.micro`, `1` otherwise.
-
maxWorkers
public com.pulumi.core.Output<java.lang.Integer> maxWorkers()
- Returns:
- Maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
-
minWebservers
public com.pulumi.core.Output<java.lang.Integer> minWebservers()
- Returns:
- Minimum number of web servers that you want to run in your environment. Value need to be between `2` and `5` if `environmentClass` is not `mw1.micro`, `1` otherwise.
-
minWorkers
public com.pulumi.core.Output<java.lang.Integer> minWorkers()
- Returns:
- Minimum number of workers that you want to run in your environment. Will be `1` by default.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name of the Apache Airflow Environment.
-
networkConfiguration
public com.pulumi.core.Output<EnvironmentNetworkConfiguration> networkConfiguration()
- Returns:
- Network configuration for your Apache Airflow Environment. This includes two private subnets as well as security groups for the Airflow environment. Each subnet requires internet connection, otherwise the deployment will fail. See `networkConfiguration` Block for details.
-
pluginsS3ObjectVersion
public com.pulumi.core.Output<java.lang.String> pluginsS3ObjectVersion()
- Returns:
- Version of the plugins.zip file you want to use.
-
pluginsS3Path
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> pluginsS3Path()
- Returns:
- Relative path to the plugins.zip file on your Amazon S3 storage bucket. For example, plugins.zip. If a relative path is provided in the request, then pluginsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
-
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.
-
requirementsS3ObjectVersion
public com.pulumi.core.Output<java.lang.String> requirementsS3ObjectVersion()
- Returns:
- Version of the requirements.txt file you want to use.
-
requirementsS3Path
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> requirementsS3Path()
- Returns:
- Relative path to the requirements.txt file on your Amazon S3 storage bucket. For example, requirements.txt. If a relative path is provided in the request, then requirementsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
-
schedulers
public com.pulumi.core.Output<java.lang.Integer> schedulers()
- Returns:
- Number of schedulers that you want to run in your environment. v2.0.2 and above accepts `2` - `5`, default `2`. v1.10.12 accepts `1`.
-
serviceRoleArn
public com.pulumi.core.Output<java.lang.String> serviceRoleArn()
- Returns:
- Service Role ARN of the Amazon MWAA Environment.
-
sourceBucketArn
public com.pulumi.core.Output<java.lang.String> sourceBucketArn()
- Returns:
- ARN of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
-
startupScriptS3ObjectVersion
public com.pulumi.core.Output<java.lang.String> startupScriptS3ObjectVersion()
- Returns:
- Version of the startup shell script you want to use. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.
-
startupScriptS3Path
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> startupScriptS3Path()
- Returns:
- Relative path to the script hosted in your bucket. The script runs as your environment starts before starting the Apache Airflow process. Use this script to install dependencies, modify configuration options, and set environment variables. See [Using a startup script](https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html). Supported for environment versions 2.x and later.
-
status
public com.pulumi.core.Output<java.lang.String> status()
- Returns:
- Status of the last update.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Map of resource tags to associate with the resource. 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.
-
webserverAccessMode
public com.pulumi.core.Output<java.lang.String> webserverAccessMode()
- Returns:
- Whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default), `PUBLIC_ONLY` and `PUBLIC_AND_PRIVATE`.
-
webserverUrl
public com.pulumi.core.Output<java.lang.String> webserverUrl()
- Returns:
- Webserver URL of the MWAA Environment.
-
webserverVpcEndpointService
public com.pulumi.core.Output<java.lang.String> webserverVpcEndpointService()
- Returns:
- VPC endpoint for the environment's web server.
-
weeklyMaintenanceWindowStart
public com.pulumi.core.Output<java.lang.String> weeklyMaintenanceWindowStart()
- Returns:
- Start date for the weekly maintenance window.
-
workerReplacementStrategy
public com.pulumi.core.Output<java.lang.String> workerReplacementStrategy()
- Returns:
- Worker replacement strategy. Valid values: `FORCED`, `GRACEFUL`.
-
get
public static Environment get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable EnvironmentState 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.
-
-