2
我继承了一个 python lambda,我需要将其转换为 node js。我有点坚持处理身份验证的代码,所以我想知道下面的 python 代码的 JS 等价物是什么:
import boto3
import json
import requests
from requests_aws4auth import AWS4Auth
region = "eu-west-1"
service = "es"
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)
r = requests.get(url, auth=awsauth)
或者这个
def get_credentials(session):
session_credentials = session.get_credentials()
if not session_credentials:
return None
read_only_credentials = session_credentials.get_frozen_credentials()
expiration = None
if hasattr(session_credentials, '_expiry_time') and session_credentials._expiry_time:
if isinstance(session_credentials._expiry_time, datetime):
expiration = session_credentials._expiry_time
else:
LOGGER.debug("Expiration in session credentials is of type {}, not datetime".format(type(expiration)))
credentials = convert_creds(read_only_credentials, expiration)
return credentials
这是我正在进行的工作,似乎是使用 javascript aws-sdk 的相关调用:
import AWS from "aws-sdk"
const region = "eu-west-1"
const service = "es"
const credentials = AWS.Credentials().get()
const response = await fetch(url, {
headers: { Authorization: credentials },
credentials: "include"
})
我知道 python 代码可以工作,所以我只需要将它转换为 JS。正如您所看到的,我不太确定在获得凭据后如何处理它,或者在 fetch 调用中 auth=awsauth 的等价物是什么。任何帮助将非常感激。谢谢!