ps/Modules/Alkami.DevOps.Common/Public/Invoke-StopDesignation.ps1

59 lines
1.9 KiB
PowerShell
Raw Permalink Normal View History

2023-05-30 22:51:22 -07:00
function Invoke-StopDesignation {
<#
.SYNOPSIS
This wraps the APIGateway/Lambda for scaling environments. Stops all instances by Designation.
.DESCRIPTION
Will stop all instances by Designation tag except those that are configured to not be stopped.
.PARAMETER Fqdn
Fully Qualified Domain Name of the API Gateway. Each environment/account has a unique API Gateway endpoint.
.PARAMETER Designation
alk:designation tag to filter which instances to query. Case sensitive.
.PARAMETER ApiGatewayKey
Unique key for authenticating to the API Gateway.
.EXAMPLE
Invoke-StopDesignation -fqdn "vyq7hqcx55.execute-api.us-east-1.amazonaws.com" -designation "ci1" -apiGatewayKey "123456789"
returns JSON:
[
{
"IsExcluded": false,
"IsApp": false,
"IsMic": false,
"IsWeb": true,
"IsRunning": true,
"IsStopped": false,
"InstanceId": "i-0fa21749b4e4b81ea",
"Designation": "ci1",
"HostName": "web27425",
"Environment": "dev",
"Service": "orb"
}
]
.NOTES
Dev FQDN : vyq7hqcx55.execute-api.us-east-1.amazonaws.com
Staging FQDN : cox3133b67.execute-api.us-east-1.amazonaws.com
Qa FQDN :
#>
[CmdletBinding()]
Param (
[Parameter(Mandatory = $true)]
[string] $Fqdn,
[Parameter(Mandatory = $true)]
[string] $Designation,
[Parameter(Mandatory = $true)]
[string] $ApiGatewayKey
)
[System.Net.ServicePointManager]::SecurityProtocol = "Tls12"
$jsonBody = '{"Designation":"' + $Designation + '"}'
$response = Invoke-RestMethod -Uri "https://$Fqdn/Prod/StopDesignation" -Headers @{"x-api-key"="$ApiGatewayKey"} -Method POST -body $jsonBody -ContentType "application/json"
return $response
}