You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.

Class: Aws::OpsWorks::Stack

Inherits:
Resources::Resource show all
Defined in:
(unknown)

Instance Attribute Summary collapse

Attributes inherited from Resources::Resource

#client, #identifiers

Instance Method Summary collapse

Methods inherited from Resources::Resource

add_data_attribute, add_identifier, #data, data_attributes, #data_loaded?, identifiers, #load, #wait_until

Methods included from Resources::OperationMethods

#add_batch_operation, #add_operation, #batch_operation, #batch_operation_names, #batch_operations, #operation, #operation_names, #operations

Constructor Details

#initialize(id, options = {}) ⇒ Object #initialize(options = {}) ⇒ Object

Overloads:

  • #initialize(id, options = {}) ⇒ Object

    Parameters:

    • id (String)

    Options Hash (options):

    • :client (Client)

      When `:client is not given, the options hash is used to construct a new Client object.

  • #initialize(options = {}) ⇒ Object

    Options Hash (options):

    • :id (required, String)
    • :client (Client)

      When `:client is not given, the options hash is used to construct a new Client object.

Instance Attribute Details

#agent_versionString (readonly)

The agent version. This parameter is set to LATEST for auto-update. or a version number for a fixed agent version.

Returns:

  • (String)

    The agent version.

#arnString (readonly)

The stack\'s ARN.

Returns:

  • (String)

    The stack\'s ARN.

#attributesHash<String,String> (readonly)

The stack\'s attributes.

Returns:

  • (Hash<String,String>)

    The stack\'s attributes.

#chef_configurationTypes::ChefConfiguration (readonly)

A ChefConfiguration object that specifies whether to enable Berkshelf and the Berkshelf version. For more information, see Create a New Stack.

Returns:

  • (Types::ChefConfiguration)

    A ChefConfiguration object that specifies whether to enable Berkshelf and the Berkshelf version.

#configuration_managerTypes::StackConfigurationManager (readonly)

The configuration manager.

Returns:

#created_atString (readonly)

The date when the stack was created.

Returns:

  • (String)

    The date when the stack was created.

#custom_cookbooks_sourceTypes::Source (readonly)

Contains the information required to retrieve an app or cookbook from a repository. For more information, see Adding Apps or Cookbooks and Recipes.

Returns:

  • (Types::Source)

    Contains the information required to retrieve an app or cookbook from a repository.

#custom_jsonString (readonly)

A JSON object that contains user-defined attributes to be added to the stack configuration and deployment attributes. You can use custom JSON to override the corresponding default stack configuration attribute values or to pass data to recipes. The string should be in the following format:

"{\"key1\": \"value1\", \"key2\": \"value2\",...}"

For more information on custom JSON, see Use Custom JSON to Modify the Stack Configuration Attributes.

Returns:

  • (String)

    A JSON object that contains user-defined attributes to be added to the stack configuration and deployment attributes.

#default_availability_zoneString (readonly)

The stack\'s default Availability Zone. For more information, see Regions and Endpoints.

Returns:

  • (String)

    The stack\'s default Availability Zone.

#default_instance_profile_arnString (readonly)

The ARN of an IAM profile that is the default profile for all of the stack\'s EC2 instances. For more information about IAM ARNs, see Using Identifiers.

Returns:

  • (String)

    The ARN of an IAM profile that is the default profile for all of the stack\'s EC2 instances.

#default_osString (readonly)

The stack\'s default operating system.

Returns:

  • (String)

    The stack\'s default operating system.

#default_root_device_typeString (readonly)

The default root device type. This value is used by default for all instances in the stack, but you can override it when you create an instance. For more information, see Storage for the Root Device.

Returns:

  • (String)

    The default root device type.

#default_ssh_key_nameString (readonly)

A default Amazon EC2 key pair for the stack\'s instances. You can override this value when you create or update an instance.

Returns:

  • (String)

    A default Amazon EC2 key pair for the stack\'s instances.

#default_subnet_idString (readonly)

The default subnet ID; applicable only if the stack is running in a VPC.

Returns:

  • (String)

    The default subnet ID; applicable only if the stack is running in a VPC.

#hostname_themeString (readonly)

The stack host name theme, with spaces replaced by underscores.

Returns:

  • (String)

    The stack host name theme, with spaces replaced by underscores.

#idString (readonly)

Returns:

  • (String)

#nameString (readonly)

The stack name.

Returns:

  • (String)

    The stack name.

#regionString (readonly)

The stack AWS region, such as \"ap-northeast-2\". For more information about AWS regions, see Regions and Endpoints.

Returns:

  • (String)

    The stack AWS region, such as \"ap-northeast-2\".

#service_role_arnString (readonly)

The stack AWS Identity and Access Management (IAM) role.

Returns:

  • (String)

    The stack AWS Identity and Access Management (IAM) role.

#stack_idString (readonly)

The stack ID.

Returns:

  • (String)

    The stack ID.

#use_custom_cookbooksBoolean (readonly)

Whether the stack uses custom cookbooks.

Returns:

  • (Boolean)

    Whether the stack uses custom cookbooks.

#use_opsworks_security_groupsBoolean (readonly)

Whether the stack automatically associates the AWS OpsWorks Stacks built-in security groups with the stack\'s layers.

Returns:

  • (Boolean)

    Whether the stack automatically associates the AWS OpsWorks Stacks built-in security groups with the stack\'s layers.

#vpc_idString (readonly)

The VPC ID; applicable only if the stack is running in a VPC.

Returns:

  • (String)

    The VPC ID; applicable only if the stack is running in a VPC.

Instance Method Details

#create_layer(options = {}) ⇒ Layer

Examples:

Request syntax example with placeholder values


stack.create_layer({
  type: "aws-flow-ruby", # required, accepts aws-flow-ruby, ecs-cluster, java-app, lb, web, php-app, rails-app, nodejs-app, memcached, db-master, monitoring-master, custom
  name: "String", # required
  shortname: "String", # required
  attributes: {
    "EcsClusterArn" => "String",
  },
  cloud_watch_logs_configuration: {
    enabled: false,
    log_streams: [
      {
        log_group_name: "String",
        datetime_format: "String",
        time_zone: "LOCAL", # accepts LOCAL, UTC
        file: "String",
        file_fingerprint_lines: "String",
        multi_line_start_pattern: "String",
        initial_position: "start_of_file", # accepts start_of_file, end_of_file
        encoding: "ascii", # accepts ascii, big5, big5hkscs, cp037, cp424, cp437, cp500, cp720, cp737, cp775, cp850, cp852, cp855, cp856, cp857, cp858, cp860, cp861, cp862, cp863, cp864, cp865, cp866, cp869, cp874, cp875, cp932, cp949, cp950, cp1006, cp1026, cp1140, cp1250, cp1251, cp1252, cp1253, cp1254, cp1255, cp1256, cp1257, cp1258, euc_jp, euc_jis_2004, euc_jisx0213, euc_kr, gb2312, gbk, gb18030, hz, iso2022_jp, iso2022_jp_1, iso2022_jp_2, iso2022_jp_2004, iso2022_jp_3, iso2022_jp_ext, iso2022_kr, latin_1, iso8859_2, iso8859_3, iso8859_4, iso8859_5, iso8859_6, iso8859_7, iso8859_8, iso8859_9, iso8859_10, iso8859_13, iso8859_14, iso8859_15, iso8859_16, johab, koi8_r, koi8_u, mac_cyrillic, mac_greek, mac_iceland, mac_latin2, mac_roman, mac_turkish, ptcp154, shift_jis, shift_jis_2004, shift_jisx0213, utf_32, utf_32_be, utf_32_le, utf_16, utf_16_be, utf_16_le, utf_7, utf_8, utf_8_sig
        buffer_duration: 1,
        batch_count: 1,
        batch_size: 1,
      },
    ],
  },
  custom_instance_profile_arn: "String",
  custom_json: "String",
  custom_security_group_ids: ["String"],
  packages: ["String"],
  volume_configurations: [
    {
      mount_point: "String", # required
      raid_level: 1,
      number_of_disks: 1, # required
      size: 1, # required
      volume_type: "String",
      iops: 1,
      encrypted: false,
    },
  ],
  enable_auto_healing: false,
  auto_assign_elastic_ips: false,
  auto_assign_public_ips: false,
  custom_recipes: {
    setup: ["String"],
    configure: ["String"],
    deploy: ["String"],
    undeploy: ["String"],
    shutdown: ["String"],
  },
  install_updates_on_boot: false,
  use_ebs_optimized_instances: false,
  lifecycle_event_configuration: {
    shutdown: {
      execution_timeout: 1,
      delay_until_elb_connections_drained: false,
    },
  },
})

Basic usage

layer = stack.create_layer(options)
layer.id
#=> "layer-id"

Options Hash (options):

  • :type (required, String)

    The layer type. A stack cannot have more than one built-in layer of the same type. It can have any number of custom layers. Built-in layers are not available in Chef 12 stacks.

  • :name (required, String)

    The layer name, which is used by the console.

  • :shortname (required, String)

    For custom layers only, use this parameter to specify the layer\'s short name, which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short name is also used as the name for the directory where your app files are installed. It can have a maximum of 200 characters, which are limited to the alphanumeric characters, \'-\', \'_\', and \'.\'.

    The built-in layers\' short names are defined by AWS OpsWorks Stacks. For more information, see the Layer Reference.

  • :attributes (Hash<String,String>)

    One or more user-defined key-value pairs to be added to the stack attributes.

    To create a cluster layer, set the EcsClusterArn attribute to the cluster\'s ARN.

  • :cloud_watch_logs_configuration (Types::CloudWatchLogsConfiguration)

    Specifies CloudWatch Logs configuration options for the layer. For more information, see CloudWatchLogsLogStream.

  • :custom_instance_profile_arn (String)

    The ARN of an IAM profile to be used for the layer\'s EC2 instances. For more information about IAM ARNs, see Using Identifiers.

  • :custom_json (String)

    A JSON-formatted string containing custom stack configuration and deployment attributes to be installed on the layer\'s instances. For more information, see Using Custom JSON. This feature is supported as of version 1.7.42 of the AWS CLI.

  • :custom_security_group_ids (Array<String>)

    An array containing the layer custom security group IDs.

  • :packages (Array<String>)

    An array of Package objects that describes the layer packages.

  • :volume_configurations (Array<Types::VolumeConfiguration>)

    A VolumeConfigurations object that describes the layer\'s Amazon EBS volumes.

  • :enable_auto_healing (Boolean)

    Whether to disable auto healing for the layer.

  • :auto_assign_elastic_ips (Boolean)

    Whether to automatically assign an Elastic IP address to the layer\'s instances. For more information, see How to Edit a Layer.

  • :auto_assign_public_ips (Boolean)

    For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer\'s instances. For more information, see How to Edit a Layer.

  • :custom_recipes (Types::Recipes)

    A LayerCustomRecipes object that specifies the layer custom recipes.

  • :install_updates_on_boot (Boolean)

    Whether to install operating system and package updates when the instance boots. The default value is true. To control when updates are installed, set this value to false. You must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or by manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

    To ensure that your instances have the latest security updates, we strongly recommend using the default value of true.

  • :use_ebs_optimized_instances (Boolean)

    Whether to use Amazon EBS-optimized instances.

  • :lifecycle_event_configuration (Types::LifecycleEventConfiguration)

    A LifeCycleEventConfiguration object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining.

Returns:

See Also:

#deleteStruct

Deletes a specified stack. You must first delete all instances, layers, and apps or deregister registered instances. For more information, see Shut Down a Stack.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

Examples:

Request syntax example with placeholder values


stack.delete()

Returns:

  • (Struct)

    Returns an empty response.

See Also:

#layers(options = {}) ⇒ Collection<Layer>

Returns a Collection of Layer resources. No API requests are made until you call an enumerable method on the collection. Client#describe_layers will be called multiple times until every Layer has been yielded.

Examples:

Request syntax example with placeholder values


stack.layers({
  layer_ids: ["String"],
})

Enumerating Layer resources.

stack.layers.each do |layer|
  # yields each layer
end

Enumerating Layer resources with a limit.

stack.layers.limit(10).each do |layer|
  # yields at most 10 layers
end

Options Hash (options):

  • :layer_ids (Array<String>)

    An array of layer IDs that specify the layers to be described. If you omit this parameter, DescribeLayers returns a description of every layer in the specified stack.

Returns:

See Also:

#summaryStackSummary

Returns: