1. README
  2. README

REAMDE.md for Amazon::API Examples

This directory contains examples demonstrating how you can create a simple Perl module for various flavors of the Amazon APIs using the Amazon::API module as a base class.

In order to exercise these examples:

Most of these scripts will show you how to use Amazon::API as a base class. Where noted however, the example service may require the use of a class constructed using the experimental Botocore class constructor (amazon-api). To create the classes for those services use the commands below:

for a in ec2 sts; do amazon-api -s $a create-stub amazon-api -s $a create-shapes done

Name Service Notes
cloud-watch-events.pm CloudWatch Events -
ec2.pm Elastic Compute Cloud requires Amazon::API::EC2
ecr.pm Elastic Container Registry -
secrets-manager.pm Secrets Manager -
ssm.pm Systems Manager -
sts.pm Security Token Service requires Amazon::API::STS
sqs.pm Simple Queue Service -

The example scripts will execute a subset of the API methods for various services. The intent is to show how you can create your own classes or just use the Amazon::API class directly to call a service.

All of the examples are exercised in the same way:

perl service-name.pm run API arguments

Using LocalStack to Run Examples

If you're interested in exercising some of these examples in a local environment checkout LocalStack. You can use the docker-compose.yml file below to bring up the service.

``` version: "3.8"

services: localstack: container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" image: localstack/localstack network_mode: bridge ports: - "127.0.0.1:4510-4530:4510-4530" - "127.0.0.1:4566:4566" - "127.0.0.1:4571:4571" environment: - SERVICES=s3,ssm,secretsmanager,kms,sqs,ec2,events - DEBUG=${DEBUG-} - DATA_DIR=${DATA_DIR-} - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} - HOST_TMP_FOLDER=${TMPDIR:-/tmp/}localstack - DOCKER_HOST=unix:///var/run/docker.sock volumes: - "${TMPDIR:-/tmp}/localstack:/tmp/localstack" - "/var/run/docker.sock:/var/run/docker.sock"

```

To use LocalStack when exercising an example, use the --endpoint-url option.

perl sqs.pm --endpoint-url http://localhost:4566 run ListQueues

  1. January 2023
  2. README