Scheduled Action
Example Usage
Pause Cluster Action
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.iam.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.Policy;
import com.pulumi.aws.iam.PolicyArgs;
import com.pulumi.aws.iam.RolePolicyAttachment;
import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
import com.pulumi.aws.redshift.ScheduledAction;
import com.pulumi.aws.redshift.ScheduledActionArgs;
import com.pulumi.aws.redshift.inputs.ScheduledActionTargetActionArgs;
import com.pulumi.aws.redshift.inputs.ScheduledActionTargetActionPauseClusterArgs;
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) {
final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("scheduler.redshift.amazonaws.com")
.build())
.actions("sts:AssumeRole")
.build())
.build());
var exampleRole = new Role("exampleRole", RoleArgs.builder()
.assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
final var examplePolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.actions(
"redshift:PauseCluster",
"redshift:ResumeCluster",
"redshift:ResizeCluster")
.resources("*")
.build())
.build());
var examplePolicy = new Policy("examplePolicy", PolicyArgs.builder()
.policy(examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
.policyArn(examplePolicy.arn())
.role(exampleRole.name())
.build());
var exampleScheduledAction = new ScheduledAction("exampleScheduledAction", ScheduledActionArgs.builder()
.schedule("cron(00 23 * * ? *)")
.iamRole(exampleRole.arn())
.targetAction(ScheduledActionTargetActionArgs.builder()
.pauseCluster(ScheduledActionTargetActionPauseClusterArgs.builder()
.clusterIdentifier("tf-redshift001")
.build())
.build())
.build());
}
}
Content copied to clipboard
Resize Cluster Action
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.redshift.ScheduledAction;
import com.pulumi.aws.redshift.ScheduledActionArgs;
import com.pulumi.aws.redshift.inputs.ScheduledActionTargetActionArgs;
import com.pulumi.aws.redshift.inputs.ScheduledActionTargetActionResizeClusterArgs;
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 example = new ScheduledAction("example", ScheduledActionArgs.builder()
.schedule("cron(00 23 * * ? *)")
.iamRole(aws_iam_role.example().arn())
.targetAction(ScheduledActionTargetActionArgs.builder()
.resizeCluster(ScheduledActionTargetActionResizeClusterArgs.builder()
.clusterIdentifier("tf-redshift001")
.clusterType("multi-node")
.nodeType("dc1.large")
.numberOfNodes(2)
.build())
.build())
.build());
}
}
Content copied to clipboard
Import
Redshift Scheduled Action can be imported using the name
, e.g.,
$ pulumi import aws:redshift/scheduledAction:ScheduledAction example tf-redshift-scheduled-action
Content copied to clipboard
Properties
Link copied to clipboard
The description of the scheduled action.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
The schedule of action. The schedule is defined format of "at expression" or "cron expression", for example at(2016-03-04T17:27:00)
or cron(0 10 ? * MON *)
. See Scheduled Action for more information.
Link copied to clipboard
Target action. Documented below.