AWS Lambda(python3.9)でCognitoにサインインする
AWS Lambda Cognito 'urllib3.util.ssl' 'DEFAULTCIPHERS' boto3 urllib3 Lambda
This article is about how to sign in to Cognito with Lambda on AWS. The author encountered an error cannot import name 'DEFAULTCIPHERS' from 'urllib3.util.ssl' and found that it was caused by boto3 not being able to use the latest urllib3. The author then avoid the error by adding a layer to the Lambda function.
by JanitorAug 28, 2023
Jump Links
1.LambdaにLayerを設定する
2.動作確認
3.おわりに
AWSのLambdaでCognitoにサインインする方法です。いつも通りやろうとすると「cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_'」というエラーがでました。どうやらboto3が最新のurllib3というものを使えなくなったことで出ているエラーとのことでしたのでエラーの回避を簡単にしてみました。
AWSのLambdaでCognitoにサインインする方法です。いつも通りやろうとすると「cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_'」というエラーがでました。どうやらboto3が最新のurllib3というものを使えなくなったことで出ているエラーとのことでしたのでエラーの回避を簡単にしてみました。
1.LambdaにLayerを設定する
1.LambdaにLayerを設定する
AWSのLambdaのコンソールで関数を作成し、Layersをおします。レイヤーの追加 -> ラジオボタンでARNを指定を選択 -> 入力欄に下記を入力します。
https://github.com/keithrozario/Klayers
AWSのLambdaのコンソールで関数を作成し、Layersをおします。レイヤーの追加 -> ラジオボタンでARNを指定を選択 -> 入力欄に下記を入力します。
https://github.com/keithrozario/Klayers
arn:aws:lambda:us-east-1:770693421928:layer:Klayers-p39-boto3:18
arn:aws:lambda:us-east-1:770693421928:layer:Klayers-p39-boto3:18
2.動作確認
2.動作確認
下記のスクリプトで動作確認しトークンを取得することができました。
下記のスクリプトで動作確認しトークンを取得することができました。
import boto3
import os
def lambda_handler(event, context):
authValue = { 'USERNAME': os.environ[ 'USERMAIL_TEST' ], 'PASSWORD': os.environ[ 'USERPASSWORD_TEST' ], }
client = boto3.client( 'cognito-idp', region_name=os.environ[ 'REGION' ] )
cognitoResponse = client.initiate_auth( ClientId = os.environ[ 'CLIENT_ID' ], AuthFlow = "USER_PASSWORD_AUTH", AuthParameters = authValue )
token = cognitoResponse.get( 'AuthenticationResult' ).get( 'AccessToken' )
print( token )
import boto3
import os
def lambda_handler(event, context):
authValue = { 'USERNAME': os.environ[ 'USERMAIL_TEST' ], 'PASSWORD': os.environ[ 'USERPASSWORD_TEST' ], }
client = boto3.client( 'cognito-idp', region_name=os.environ[ 'REGION' ] )
cognitoResponse = client.initiate_auth( ClientId = os.environ[ 'CLIENT_ID' ], AuthFlow = "USER_PASSWORD_AUTH", AuthParameters = authValue )
token = cognitoResponse.get( 'AuthenticationResult' ).get( 'AccessToken' )
print( token )
3.おわりに
3.おわりに
Klayersありがとうございます。
Klayersありがとうございます。
AWS Lambda(python3.9)でCognitoにサインインする
AWS Lambda Cognito 'urllib3.util.ssl' 'DEFAULTCIPHERS' boto3 urllib3 Lambda
This article is about how to sign in to Cognito with Lambda on AWS. The author encountered an error cannot import name 'DEFAULTCIPHERS' from 'urllib3.util.ssl' and found that it was caused by boto3 not being able to use the latest urllib3. The author then avoid the error by adding a layer to the Lambda function.
by JanitorAug 28, 2023
Jump Links
1.LambdaにLayerを設定する
2.動作確認
3.おわりに
AWSのLambdaでCognitoにサインインする方法です。いつも通りやろうとすると「cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_'」というエラーがでました。どうやらboto3が最新のurllib3というものを使えなくなったことで出ているエラーとのことでしたのでエラーの回避を簡単にしてみました。
AWSのLambdaでCognitoにサインインする方法です。いつも通りやろうとすると「cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_'」というエラーがでました。どうやらboto3が最新のurllib3というものを使えなくなったことで出ているエラーとのことでしたのでエラーの回避を簡単にしてみました。
1.LambdaにLayerを設定する
1.LambdaにLayerを設定する
AWSのLambdaのコンソールで関数を作成し、Layersをおします。レイヤーの追加 -> ラジオボタンでARNを指定を選択 -> 入力欄に下記を入力します。
https://github.com/keithrozario/Klayers
AWSのLambdaのコンソールで関数を作成し、Layersをおします。レイヤーの追加 -> ラジオボタンでARNを指定を選択 -> 入力欄に下記を入力します。
https://github.com/keithrozario/Klayers
arn:aws:lambda:us-east-1:770693421928:layer:Klayers-p39-boto3:18
arn:aws:lambda:us-east-1:770693421928:layer:Klayers-p39-boto3:18
2.動作確認
2.動作確認
下記のスクリプトで動作確認しトークンを取得することができました。
下記のスクリプトで動作確認しトークンを取得することができました。
import boto3
import os
def lambda_handler(event, context):
authValue = { 'USERNAME': os.environ[ 'USERMAIL_TEST' ], 'PASSWORD': os.environ[ 'USERPASSWORD_TEST' ], }
client = boto3.client( 'cognito-idp', region_name=os.environ[ 'REGION' ] )
cognitoResponse = client.initiate_auth( ClientId = os.environ[ 'CLIENT_ID' ], AuthFlow = "USER_PASSWORD_AUTH", AuthParameters = authValue )
token = cognitoResponse.get( 'AuthenticationResult' ).get( 'AccessToken' )
print( token )
import boto3
import os
def lambda_handler(event, context):
authValue = { 'USERNAME': os.environ[ 'USERMAIL_TEST' ], 'PASSWORD': os.environ[ 'USERPASSWORD_TEST' ], }
client = boto3.client( 'cognito-idp', region_name=os.environ[ 'REGION' ] )
cognitoResponse = client.initiate_auth( ClientId = os.environ[ 'CLIENT_ID' ], AuthFlow = "USER_PASSWORD_AUTH", AuthParameters = authValue )
token = cognitoResponse.get( 'AuthenticationResult' ).get( 'AccessToken' )
print( token )
3.おわりに
3.おわりに
Klayersありがとうございます。
Klayersありがとうございます。