@@ -16,34 +16,33 @@ export const ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
16
16
* Creates a credential provider that will source credentials from the ECS
17
17
* Container Metadata Service
18
18
*/
19
- export function fromContainerMetadata ( init : RemoteProviderInit = { } ) : CredentialProvider {
19
+ export const fromContainerMetadata = ( init : RemoteProviderInit = { } ) : CredentialProvider => {
20
20
const { timeout, maxRetries } = providerConfigFromInit ( init ) ;
21
- return ( ) => {
22
- return getCmdsUri ( ) . then ( ( url ) =>
23
- retry ( async ( ) => {
24
- const credsResponse = JSON . parse ( await requestFromEcsImds ( timeout , url ) ) ;
25
- if ( ! isImdsCredentials ( credsResponse ) ) {
26
- throw new ProviderError ( "Invalid response received from instance metadata service." ) ;
27
- }
28
-
29
- return fromImdsCredentials ( credsResponse ) ;
30
- } , maxRetries )
31
- ) ;
21
+ return async ( ) => {
22
+ const url = await getCmdsUri ( ) ;
23
+ return await retry ( async ( ) => {
24
+ const credsResponse = JSON . parse ( await requestFromEcsImds ( timeout , url ) ) ;
25
+ if ( ! isImdsCredentials ( credsResponse ) ) {
26
+ throw new ProviderError ( "Invalid response received from instance metadata service." ) ;
27
+ }
28
+ return fromImdsCredentials ( credsResponse ) ;
29
+ } , maxRetries ) ;
32
30
} ;
33
- }
31
+ } ;
34
32
35
- function requestFromEcsImds ( timeout : number , options : RequestOptions ) : Promise < string > {
33
+ const requestFromEcsImds = async ( timeout : number , options : RequestOptions ) : Promise < string > = > {
36
34
if ( process . env [ ENV_CMDS_AUTH_TOKEN ] ) {
37
35
const { headers = { } } = options ;
38
36
headers . Authorization = process . env [ ENV_CMDS_AUTH_TOKEN ] ;
39
37
options . headers = headers ;
40
38
}
41
39
42
- return httpRequest ( {
40
+ const buffer = await httpRequest ( {
43
41
...options ,
44
42
timeout,
45
- } ) . then ( ( buffer ) => buffer . toString ( ) ) ;
46
- }
43
+ } ) ;
44
+ return buffer . toString ( ) ;
45
+ } ;
47
46
48
47
const CMDS_IP = "169.254.170.2" ;
49
48
const GREENGRASS_HOSTS = {
@@ -55,7 +54,7 @@ const GREENGRASS_PROTOCOLS = {
55
54
"https:" : true ,
56
55
} ;
57
56
58
- function getCmdsUri ( ) : Promise < RequestOptions > {
57
+ const getCmdsUri = ( ) : Promise < RequestOptions > = > {
59
58
if ( process . env [ ENV_CMDS_RELATIVE_URI ] ) {
60
59
return Promise . resolve ( {
61
60
hostname : CMDS_IP ,
@@ -91,4 +90,4 @@ function getCmdsUri(): Promise<RequestOptions> {
91
90
false
92
91
)
93
92
) ;
94
- }
93
+ } ;
0 commit comments