//这在一个CloudForms模板中
//这些是参数,从这里我想使用OpsBucketname
AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::LanguageExtensions
- AWS::Serverless-2016-10-31
Parameters:
DeploymentHash:
Type: String
Description: sample description
Stage:
Type: String
Description: sample description
OpsBucketName:
Type: String
//这些是我想要在lambda函数上使用参数的资源,在lambda_Handler上的code:zipfile:-
Resources:
CognitoUiCustomizationLambdaRole:
Type: "AWS::IAM::Role"
// ...
CognitoSetUiCustomizationLambda:
Type: "AWS::Lambda::Function"
Properties:
Code:
ZipFile: |
import boto3
import logging
logger = logging.getLogger()
client = boto3.client('cognito-idp')
s3 = boto3.client('s3')
def lambda_handler(event, context):
logo = s3.get_object(Bucket="${OpsBucketName}", Key="${BlockPrefix}/assets/frontend/assets/images/logo.png")
// other codes here not related to questions ...
Description: Lambda for custom resource to customize the cognito login page
FunctionName: !Sub "CognitoLoginCustomization-${NamingSuffix}"
Handler: index.lambda_handler
Runtime: python3.9
Timeout: 10
Role: !GetAtt CognitoUiCustomizationLambdaRole.Arn
我这里的主要目的是从参数中获取存储桶名称,然后使用它从该存储桶中获取徽标,并在Cogito_idp.setUiCustomization()函数上使用该徽标来设置定制的Cogito登录页面.
在我的函数lambda_handler中,IM使用的是使用语法${OpsBucketName}的OpsBucketName 但在我的CloudWatch日志(log)中,错误是它是空的,但我确信它有一个值,因为成功创建了其他不使用自定义资源的资源,并且成功地使用了该存储桶名称.
我在这里使用该参数的语法正确吗?我在网上找不到和我的问题一样的样品. 非常感谢.
我try 在此场景的文档中搜索,但没有找到.我期待看到一个在lambda函数上使用参数的样例,Code:zipfile使用的是python.