The StackStorm AWS integration pack supplies action integration for EC2 and Route53.
You will need to add a set of AWS credentials, and default zone to the config.yaml file:
---
setup:
region: ""aws_access_key_id: ""aws_secret_access_key: ""interval: 20st2_user_data: ""You can generate the access key and secret access key by following these directions:
http://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html#Using_CreateAccessKey
If you would like to use the IAM role assigned to the instance stackstorm is running set the key and secret to null and set the region.
---
setup:
region: "us-east-1"aws_access_key_id: nullaws_secret_access_key: nullinterval: 20st2_user_data: ""service_notifications_sensor.host- Listen host for the HTTP interface.service_notifications_sensor.port- Listen path for the HTTP interface.service_notifications_sensor.path- Path where the events need to be sent.
And aws.example.file is an example of this configuration. You can use actions and sensors by copying this file to config.yaml and editing the parameters in this file.
Optionally, you can set the user_data to set a default file to be used during new instance creation. Put your user_data file somewhere accessible by the StackStorm user, and use the st2_user_data config option to set it.
st2_user_data: "/full/path/to/file"This file/script will be used for all invocations of the ec2_run_instances action
This sensor exposes a HTTP interface and listens for service event notifications which are delivered via AWS SNS service using HTTP(s) endpoint.
Currently it supports event notifications generated by the S3 service - http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
Keep in mind that this sensor doesn't implement any kind of authentication.
This means that if the sensor is not behind a proxy which implements
authentication and is accessible to the outside world, you need to configure
path setting to include a random secret which is only known to the
AWS SNS service.
This trigger is emitted for every service event notification.
Example trigger payload:
{
"source": "aws:s3",
"region": "us-west-2",
"name": "ObjectCreated:Put",
"timestamp": 123456789,
"response_elements": {
"x-amz-id-2": "blahid//4U+rk=",
"x-amz-request-id": "5FF5BB6EDE3631F8"
},
"request_parameters": {
"sourceIPAddress": "127.0.0.1"
},
"payload": {
"configurationId": "snsnotificationforput",
"object": {
"eTag": "5dfd7f29bce6d94dc5c73553f269659b",
"key": "myfile.tar.gz",
"size": 178428
},
"bucket": {
"ownerIdentity": {
"principalId": "BLAHBLAH"
},
"name": "testbucket33333",
"arn": "arn:aws:s3:::testbucket33333"
},
"s3SchemaVersion": "1.0"
}
}source, region, name and timestamp attributes are included with
all the events, but the format and values inside the payload attribute
different across different services and event types.
For a list of supported S3 event types see http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types
This is generic SQS Sensor using boto3 api to fetch messages from SQS queue. After receiving a message it's content is passed as payload to a trigger 'aws.sqs_new_message'
This sensor can be configured either by using config.yaml within a pack or by creating following values in datastore:
- aws.input_queues (list queues as comma separated string: first_queue,second_queue)
- aws.aws_access_key_id
- aws.aws_secret_access_key
- aws.region
- aws.max_number_of_messages (must be between 1 - 10)
For configuration in config.yaml with config like this
setup:
aws_access_key_id:
aws_access_key_id:
region:
sqs_sensor:
input_queues:
- first_queue
- second_queuesqs_other:
max_mumber_of_messages: 1If any value exist in datastore it will be taken instead of any value in config.yaml
This trigger is emitted when a single message is received from a queue.
{
"queue": "first_sqs_queue",
"body": "example message body"
}- r53_build_base_http_request
- r53_change_rrsets
- r53_close
- r53_create_health_check
- r53_create_hosted_zone
- r53_create_zone
- r53_delete_health_check
- r53_delete_hosted_zone
- r53_get_all_hosted_zones
- r53_get_all_rrsets
- r53_get_change
- r53_get_hosted_zone
- r53_get_hosted_zone_by_name
- r53_get_http_connection
- r53_get_list_health_checks
- r53_get_path
- r53_get_proxy_auth_header
- r53_get_proxy_url_with_auth
- r53_get_zone
- r53_get_zones
- r53_handle_proxy
- r53_make_request
- r53_new_http_connection
- r53_prefix_proxy_to_path
- r53_proxy_ssl
- r53_put_http_connection
- r53_server_name
- r53_set_host_header
- r53_set_request_hook
- r53_skip_proxy
- r53_zone_add_a
- r53_zone_add_cname
- r53_zone_add_mx
- r53_zone_add_record
- r53_zone_delete
- r53_zone_delete_a
- r53_zone_delete_cname
- r53_zone_delete_mx
- r53_zone_delete_record
- r53_zone_find_records
- r53_zone_get_a
- r53_zone_get_cname
- r53_zone_get_mx
- r53_zone_get_nameservers
- r53_zone_get_records
- r53_zone_update_a
- r53_zone_update_cname
- r53_zone_update_mx
- r53_zone_update_record
- ec2_allocate_address
- ec2_assign_private_ip_addresses
- ec2_associate_address
- ec2_associate_address_object
- ec2_attach_network_interface
- ec2_attach_volume
- ec2_authorize_security_group
- ec2_authorize_security_group_deprecated
- ec2_authorize_security_group_egress
- ec2_build_base_http_request
- ec2_build_complex_list_params
- ec2_build_configurations_param_list
- ec2_build_filter_params
- ec2_build_list_params
- ec2_build_tag_param_list
- ec2_bundle_instance
- ec2_cancel_bundle_task
- ec2_cancel_reserved_instances_listing
- ec2_cancel_spot_instance_requests
- ec2_close
- ec2_confirm_product_instance
- ec2_copy_image
- ec2_copy_snapshot
- ec2_create_image
- ec2_create_key_pair
- ec2_create_network_interface
- ec2_create_placement_group
- ec2_create_reserved_instances_listing
- ec2_create_security_group
- ec2_create_snapshot
- ec2_create_spot_datafeed_subscription
- ec2_create_tags
- ec2_create_volume
- ec2_delete_key_pair
- ec2_delete_network_interface
- ec2_delete_placement_group
- ec2_delete_security_group
- ec2_delete_snapshot
- ec2_delete_spot_datafeed_subscription
- ec2_delete_tags
- ec2_delete_volume
- ec2_deregister_image
- ec2_describe_account_attributes
- ec2_describe_reserved_instances_modifications
- ec2_describe_vpc_attribute
- ec2_detach_network_interface
- ec2_detach_volume
- ec2_disassociate_address
- ec2_enable_volume_io
- ec2_get_all_addresses
- ec2_get_all_bundle_tasks
- ec2_get_all_images
- ec2_get_all_instance_status
- ec2_get_all_instance_types
- ec2_get_all_instances
- ec2_get_all_kernels
- ec2_get_all_key_pairs
- ec2_get_all_network_interfaces
- ec2_get_all_placement_groups
- ec2_get_all_ramdisks
- ec2_get_all_regions
- ec2_get_all_reservations
- ec2_get_all_reserved_instances
- ec2_get_all_reserved_instances_offerings
- ec2_get_all_security_groups
- ec2_get_all_snapshots
- ec2_get_all_spot_instance_requests
- ec2_get_all_tags
- ec2_get_all_volume_status
- ec2_get_all_volumes
- ec2_get_all_zones
- ec2_get_console_output
- ec2_get_http_connection
- ec2_get_image
- ec2_get_image_attribute
- ec2_get_instance_attribute
- ec2_get_key_pair
- ec2_get_list
- ec2_get_object
- ec2_get_only_instances
- ec2_get_params
- ec2_get_password_data
- ec2_get_path
- ec2_get_proxy_auth_header
- ec2_get_proxy_url_with_auth
- ec2_get_snapshot_attribute
- ec2_get_spot_datafeed_subscription
- ec2_get_spot_price_history
- ec2_get_status
- ec2_get_utf8_value
- ec2_get_volume_attribute
- ec2_handle_proxy
- ec2_import_key_pair
- ec2_make_request
- ec2_modify_image_attribute
- ec2_modify_instance_attribute
- ec2_modify_network_interface_attribute
- ec2_modify_reserved_instances
- ec2_modify_snapshot_attribute
- ec2_modify_volume_attribute
- ec2_modify_vpc_attribute
- ec2_monitor_instance
- ec2_monitor_instances
- ec2_new_http_connection
- ec2_prefix_proxy_to_path
- ec2_proxy_ssl
- ec2_purchase_reserved_instance_offering
- ec2_put_http_connection
- ec2_reboot_instances
- ec2_register_image
- ec2_release_address
- ec2_request_spot_instances
- ec2_reset_image_attribute
- ec2_reset_instance_attribute
- ec2_reset_snapshot_attribute
- ec2_revoke_security_group
- ec2_revoke_security_group_deprecated
- ec2_revoke_security_group_egress
- ec2_run_instances
- ec2_server_name
- ec2_set_host_header
- ec2_set_request_hook
- ec2_skip_proxy
- ec2_start_instances
- ec2_stop_instances
- ec2_terminate_instances
- ec2_trim_snapshots
- ec2_unassign_private_ip_addresses
- ec2_unmonitor_instance
- ec2_unmonitor_instances
- ec2_wait_for_state
- sqs_add_permission.yaml
- sqs_build_base_http_request.yaml
- sqs_build_complex_list_params.yaml
- sqs_build_list_params.yaml
- sqs_change_message_visibility.yaml
- sqs_change_message_visibility_batch.yaml
- sqs_close.yaml
- sqs_create_queue.yaml
- sqs_delete_message.yaml
- sqs_delete_message_batch.yaml
- sqs_delete_message_from_handle.yaml
- sqs_delete_queue.yaml
- sqs_get_all_queues.yaml
- sqs_get_dead_letter_source_queues.yaml
- sqs_get_http_connection.yaml
- sqs_get_list.yaml
- sqs_get_object.yaml
- sqs_get_path.yaml
- sqs_get_proxy_auth_header.yaml
- sqs_get_proxy_url_with_auth.yaml
- sqs_get_queue.yaml
- sqs_get_queue_attributes.yaml
- sqs_get_status.yaml
- sqs_get_utf8_value.yaml
- sqs_handle_proxy.yaml
- sqs_lookup.yaml
- sqs_make_request.yaml
- sqs_new_http_connection.yaml
- sqs_prefix_proxy_to_path.yaml
- sqs_proxy_ssl.yaml
- sqs_purge_queue.yaml
- sqs_put_http_connection.yaml
- sqs_receive_message.yaml
- sqs_remove_permission.yaml
- sqs_send_message.yaml
- sqs_send_message_batch.yaml
- sqs_server_name.yaml
- sqs_set_host_header.yaml
- sqs_set_queue_attribute.yaml
- sqs_set_request_hook.yaml
- sqs_skip_proxy.yaml