setup-deployer
Interactive guide for installing and configuring AWS Deployer infrastructure - builds Lambda functions, deploys CloudFormation stacks, and sets up multi-account targets and GitHub OIDC integration.
What this skill does
# AWS Deployer Setup and Configuration This skill guides users through the complete setup and configuration of **AWS Deployer** ([github.com/savaki/aws-deployer](https://github.com/savaki/aws-deployer)), a serverless CloudFormation deployment automation system that orchestrates infrastructure deployments using AWS Step Functions, Lambda, and DynamoDB. ## What is AWS Deployer? AWS Deployer is a serverless system that automates CloudFormation deployments across single or multiple AWS accounts. It: - Monitors S3 for CloudFormation templates and automatically deploys them - Uses Step Functions to orchestrate complex multi-stage deployments - Supports promotion workflows (dev → staging → production) - Integrates with GitHub Actions via OIDC for secure CI/CD - Provides optional web UI for deployment monitoring ## Your Task When this skill is invoked, you are helping the user set up AWS Deployer from scratch. Your role is to **interactively guide** them through the complete setup process: 1. **Gather requirements** - Ask about their deployment needs (single vs multi-account, custom domain, etc.) 2. **Verify prerequisites** - Ensure they have AWS CLI, Go, S3 bucket, and necessary permissions 3. **Build the project** - Guide them to compile all Lambda functions 4. **Deploy infrastructure** - Help construct and execute the CloudFormation deployment command 5. **Configure targets** - Set up deployment targets for multi-account mode (if applicable) 6. **Setup GitHub integration** - Configure OIDC roles and secrets for CI/CD 7. **Verify setup** - Confirm all infrastructure is deployed correctly **Important**: This is an **interactive, step-by-step process**. Don't just provide all the instructions at once. Ask questions, wait for responses, verify each step is complete before moving to the next one, and adapt to the user's specific needs. ## Prerequisites Check Before starting, verify the user has: - AWS CLI installed and configured with appropriate credentials - Go 1.24+ installed - An S3 bucket for artifacts (ask for bucket name or help create one) - IAM permissions to create: - Lambda functions - Step Functions state machines - DynamoDB tables - IAM roles and policies - CloudFormation stacks - For multi-account: IAM roles in target accounts - For custom domain: Route 53 hosted zone in the deployment account managing the domain's nameservers ## Setup Process ### 1. Gather Requirements Ask the user: 1. **Environment name**: What environment are they setting up? (dev, stg, prd) 2. **Deployment mode**: Single-account or multi-account deployments? 3. **S3 bucket**: Do they have an existing artifacts bucket, or should one be created? 4. **Custom domain**: Do they want to set up a custom domain for the API Gateway? (optional) - **Important**: The AWS account must manage the domain's nameservers via Route 53 - The Route 53 hosted zone must already exist - They'll need the Hosted Zone ID 5. **Authorization**: Should access be restricted to specific email addresses? (optional) 6. **AWS Region**: Which region to deploy to? (default: us-east-1) ### 2. Build the Project Guide the user to build all Lambda functions: ```bash make build ``` Verify the build succeeded by checking for `.zip` files in the `build/` directory. ### 3. Set Up Custom Domain Prerequisites (Optional) If the user wants a custom domain, guide them through these prerequisites: **Verify Route 53 Hosted Zone:** ```bash # List hosted zones to find the Zone ID aws route53 list-hosted-zones-by-name --dns-name example.com # Verify nameservers are properly configured aws route53 get-hosted-zone --id <ZONE_ID> ``` **Important**: The domain's nameservers at the registrar must point to the AWS Route 53 nameservers shown in the hosted zone. **Create/Verify ACM Certificate:** ```bash # Request a certificate (if not already exists) aws acm request-certificate \ --domain-name deployer.example.com \ --validation-method DNS \ --region <region> # List certificates to find the ARN aws acm list-certificates --region <region> # Get certificate details and validation records aws acm describe-certificate --certificate-arn <CERTIFICATE_ARN> --region <region> ``` **Important**: - The ACM certificate must be in the same region as the deployment - DNS validation records must be added to Route 53 - Wait for certificate status to be `ISSUED` before deploying **Verify Certificate is Issued:** ```bash aws acm describe-certificate \ --certificate-arn <CERTIFICATE_ARN> \ --region <region> \ --query 'Certificate.Status' \ --output text ``` Should return `ISSUED` before proceeding. ### 4. Deploy Infrastructure Help construct the deployment command based on their requirements: **Basic deployment:** ```bash ENV=dev S3_BUCKET=<bucket-name> make deploy ``` **With custom domain:** ```bash ENV=prd \ S3_BUCKET=<bucket-name> \ ZONE_ID=Z1234567890ABC \ DOMAIN_NAME=deployer.example.com \ CERTIFICATE_ARN=arn:aws:acm:us-east-1:123456789012:certificate/abc-123 \ make deploy ``` **With all optional parameters:** ```bash ENV=prd \ S3_BUCKET=<bucket-name> \ DEPLOYMENT_MODE=multi \ [email protected] \ ZONE_ID=Z1234567890ABC \ DOMAIN_NAME=deployer.example.com \ CERTIFICATE_ARN=arn:aws:acm:... \ make deploy ``` Monitor the CloudFormation deployment and help troubleshoot any errors. ### 5. Verify Infrastructure After deployment, verify the CloudFormation stack deployed successfully: ```bash # Check CloudFormation stack status aws cloudformation describe-stacks \ --stack-name <env>-aws-deployer \ --query 'Stacks[0].StackStatus' \ --output text ``` Should return `CREATE_COMPLETE` or `UPDATE_COMPLETE`. If the stack deployed successfully, all resources (Lambda functions, DynamoDB tables, Step Functions, Parameter Store) are configured automatically. ### 6. Set Up Deployment Targets (Multi-Account Mode Only) If using multi-account mode, configure deployment targets: **Build the CLI:** ```bash make build-cli ``` **Configure initial environment:** ```bash aws-deployer targets config \ --env <env> \ --default \ --initial-env dev ``` **Set up deployment targets for each environment:** Note: `--downstream-env` specifies where this environment promotes TO (the next environment in the pipeline). For dev (promotes to staging): ```bash aws-deployer targets set \ --env <env> \ --target-env dev \ --default \ --accounts "123456789012" \ --regions "us-east-1" \ --downstream-env "staging" ``` For staging (promotes to prd): ```bash aws-deployer targets set \ --env <env> \ --target-env staging \ --default \ --accounts "123456789012" \ --regions "us-east-1,us-west-2" \ --downstream-env "prd" ``` For production (final environment, no promotion): ```bash aws-deployer targets set \ --env <env> \ --target-env prd \ --default \ --accounts "123456789012,987654321098" \ --regions "us-east-1,us-west-2,eu-west-1" ``` **Verify target configuration:** ```bash aws-deployer targets list --env <env> ``` ### 7. Set Up GitHub Repository for CI/CD For each repository that will use AWS Deployer: **Prerequisites:** - GitHub Personal Access Token (PAT) with `repo` scope stored in AWS Secrets Manager - Your AWS credentials must have `secretsmanager:GetSecretValue` permission for the GitHub PAT secret **Create the GitHub PAT secret (if not already exists):** ```bash # Create the secret with your GitHub PAT aws secretsmanager create-secret \ --name github/pat-token \ --secret-string '{"github_pat":"ghp_xxxxxxxxxxxxx"}' ``` **Create GitHub OIDC role and secrets:** ```bash aws-deployer setup-github \ --role-name github-actions-<repo-name> \ --repo owner/repository-name \ --bucket <artifacts-bucket> \ --github-token-secret github/pat-token ``` This creates: - IAM OIDC provider for GitHub - IAM role with S3 access scoped to the repository path - GitHub repository secret with the role ARN (using the PAT from Secrets Manage
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.