파이썬 requests에서 APIKeyWay를 APIKey로 호출

3548 단어 파이썬APIGateway

개요



로컬 파이썬 프로그램에서 요청을 보내 API Gateway를 호출할 수 있는지 확인해 보았습니다.
APIKey를 설정하여 호출을 제한할 수 있으므로 호출을 제한할 수 있습니다.
처리 호출용의 화면에서도 만들어 거기의 액세스 제한을 해 버리는 것이 편한 쪽이 신경쓰입니다만・・・

APIGateWay 설정


  • Lambda 함수를 만들고 트리거에 APIGateWay를 설정할 때 ↓와 같이 REST API를 지정하여 보안을 API Key로 설정합니다.
  • APIGateWay의 경우 メソッドリクエスト에서 APIキーの必要性true로 변경합니다.
  • 액션에서 API 배포하기

  • 호출할 파이썬 프로그램


  • ↓와 같이 requests를 사용해 headers에 APIKey를 설정하면 호출할 수 있습니다.
  • import requests
    import traceback
    
    if  __name__ == "__main__":
        try:
    
            # APIKeyはAPIGatewayで確認したAPIKey
            headers = {'x-api-key': 'APIKey'}
            # xxxxxxxx の部分は各APIの値 /test2 の部分はリソース名を指定ここでは greet
            url='https://xxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/default/test2'
            # 成功のパターン
            rSucess = requests.get(url, headers=headers)
            print(rSucess.status_code)
            print(rSucess.content)
    
            # 失敗のパターン
            rFail = requests.get(url)
            print(rFail.status_code)
            print(rFail.content)
    
        except :
            print(traceback.format_exc())
    
  • 호출한 결과는 ↓와 같이 1번째는 apikey가 있기 때문에 결과가 돌아옵니다만, 2번째는 apikey가 없기 때문에 실패가 됩니다.
  • 200
    b'"Hello from Lambda!"'
    403
    b'{"message":"Forbidden"}'
    

    좋은 웹페이지 즐겨찾기