ps/Modules/Alkami.DevOps.Common/Public/Invoke-GetCurrentStatusByDesignation.ps1
2023-05-30 22:51:22 -07:00

59 lines
1.8 KiB
PowerShell

function Invoke-GetCurrentStatusByDesignation {
<#
.SYNOPSIS
This wraps the APIGateway/Lambda for scaling environments. Helper for the MinimizeDesignation/MaximizeDesignation functions.
.DESCRIPTION
Gets description of all EC2 instances where the alk:designation tag value = parameter Designation.
.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-GetCurrentStatusByDesignation -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/GetCurrentStatusByDesignation" -Headers @{"x-api-key"="$ApiGatewayKey"} -Method POST -body $jsonBody -ContentType "application/json"
return $response
}