J'ai créé un environnement de production et un environnement de test dans différentes régions, mais il y a des cas où je souhaite effectuer différentes opérations en fonction de l'environnement, par exemple lors d'un accès en dehors d'AWS. J'utilise essentiellement API Gateway
x-amazon-apigateway-integration:
type: HTTP
uri: https://example.com
httpMethod: GET
requestParameters:
integration.request.header.hoge: "'some value'"
Je gère cela en divisant yaml par région, mais ce n'est pas intelligent car un yaml similaire est géré deux fois dans le référentiel. .. J'étais heureux si AWS Lambda avait des variables d'environnement, mais j'ai appris une astuce obsolète lors d'une session d'étude.
print(context.function_name)
~~ Écrivez les paramètres dans le nom de la fonction et transmettez-le, puis ...? ~~
~~ Quand on m'a appris, j'ai demandé "Je peux écrire JSON dans la description!", Et j'ai vérifié si c'était acceptable, mais je n'ai pas trouvé un moyen d'obtenir la description. Étant donné que le paramètre est écrit dans le nom de la fonction avec son propre analyseur ou que l'indicateur de mort est trop important, j'attendrai docilement la mise à niveau de la version d'AWS Lambda, ~~
C'était getFunctionConfiguration correctement!
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/API_GetFunctionConfiguration.html http://boto3.readthedocs.org/en/latest/reference/services/lambda.html#Lambda.Client.get_function_configuration
J'ai mal compris ce que contient l'objet de contexte. Cela élargira la largeur ^^
import boto3
def lambda_handler(event, context):
client = boto3.client('lambda')
response = client.get_function_configuration(
FunctionName=context.function_name
)
print(response['Description'])
Recommended Posts