Overview
The Amazon Web Services (AWS) Handler provides a simple and programmatic way to interact with AWS resources.
At a high level, the flow of actions is:
1. Initialize - It will read the AWS environment details from the Action Config values in the Synapse plan.
2. Execute - It will parse the incoming Action Parameter data, validate and interact with AWS accordingly. Result plan is returned upon completion. If a valid Extensible Stylesheet Language Transformation (XSLT) document is supplied, a transformed result will be returned instead.
3. Progress - It will advertise the run-time status.
Plan Details
Config
The Config section of the plan specifies the one-to-one matching relationship between user-friendly profile names and actual AWS profiles.
Sample
Element | Type/Value | Required | Description |
---|---|---|---|
AwsEnvironmentProfile | Key-value pairs string array | Yes | The key name can be anything. The corresponding value must be an existing AWS profile handler has access to. Each AWS profile has its access id and secret key. See AWS Named Profiles for more information. |
Parameters
The Parameter section specifies what a client should send in during run-time.
Sample
Element | Type/Value | Required | Description |
---|---|---|---|
Region | String | Yes | Specify the region AWS resources are located, e.g. eu-west-1, us-east-2. See AWS Regions and Endpoints for more information. |
AwsEnvironmentProfile | String | Yes | Specify the AWS environment profile which must match one of the key names in AwsEnvironmentProfile from the Config section. |
Action | String | No | Specify the action to be performed against the matching resources. Valid value supported is "none" at the moment. |
Filters | Key-value pairs string array | Yes | Specify the filters used to search for the resources. Refer to EC2 Filter List for options available. Note that it is AND logic for all the filters but OR logic for each value in a filter. For example, the above examples instructs the handler to find all matching EC2s, which have tag "Cost Code" of value "xxxxxx" OR "yyyyyy" AND tag "Patch Group" of value "Quarterly" AND "instance-type" of value "t2.medium" AND "instance-state-name" of value "running". |
ReturnFormat | string | Yes | Dynamic parameter. Valid values are "json", "xml" or "yaml". |
Xslt | string | No | Specify the v1.0 XSLT to transform the raw handler response. Response will not be transformed if the value is null or empty. |
Sample Execution
This test script can be modified to simulate a test request sent from client to Synapse to invoke the handler.
Handler response without any transformation contained in the $result
PowerShell variable may look like this in "xml" format.
After the raw response is transformed using the specified "xslt", it may look like this in "xml".
Or like this in "json".
Or like this in "yaml"