Lorsque vous souhaitez renvoyer le résultat de l'API avec curl etc., il est nécessaire de calculer l'en-tête (signature SigV4) de la requête HTTP, mais notez que le matériel n'est pas trouvé Consultez d'autres sites pour savoir comment faire certifier API Gateway IAM. Il existe un moyen de calculer la valeur de hachage, mais je ne suis pas sûr, donc quand j'en ai besoin, je regarde à l'intérieur de la bibliothèque botocore et la crée.
check_iam.py
import os
from botocore.awsrequest import AWSRequest
from botocore.auth import SigV4Auth
from botocore.endpoint import URLLib3Session
from botocore.credentials import Credentials
import requests
url_ = "https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/v1"
### 1.Génération d'informations d'identification
credentials = Credentials(os.environ['AWS_ACCESS_KEY_ID'], os.environ['AWS_SECRET_ACCESS_KEY'])
### 2.Génération de requêtes AWS
request = AWSRequest(method="GET", url=url_)
### 3.Signature de demande AWS
SigV4Auth(credentials, 'execute-api', ap-northeast-1).add_auth(request)
### 4.Émission d'API
headers = {
'Authorization': request.headers['Authorization'],
'Host':'xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com',
'X-Amz-Date':request.context['timestamp']
}
response = requests.get(url_,headers=headers)
print(response.text)
Recommended Posts