export async function getRegion()

in src/lib/awsConnectionParameters.ts [430:470]


export async function getRegion(): Promise<string> {
    console.log('Configuring region for task')

    let region = tl.getInput('regionName', false)
    if (region) {
        // lowercase it because the picker we know have can return mixed case
        // data if the user typed in a region whose prefix (US- etc) exists
        // already in the friendly text
        region = region.toLowerCase()
        console.log(`...configured to use region ${region}, defined in task.`)

        return region
    }

    region = tl.getVariable(awsRegionVariable)
    if (region) {
        console.log(`...configured to use region ${region}, defined in task variable ${awsRegionVariable}.`)

        return region
    }

    if (process.env.AWS_REGION) {
        region = process.env.AWS_REGION
        console.log(`...configured to use region ${region}, defined in environment variable.`)

        return region
    }

    try {
        region = await queryRegionFromMetadata()
        console.log(`...configured to use region ${region}, from EC2 instance metadata.`)

        return region
    } catch (err) {
        console.log(`...error: failed to query EC2 instance metadata for region - ${err}`)
    }

    console.log('No region specified in the task configuration or environment')

    return ''
}