当我的代码实际上是从AWS Codecommit存储库中获取时,如何指定“ code”属性?

时间:2019-07-12 13:59:52

标签: aws-lambda amazon-cloudformation aws-codepipeline

此问题与尝试创建lambda函数的cloudformation模板有关。该模板在codecommit中,并使用codepipeline创建lambda。但是我在努力指定“ code”属性。 lambda函数的实际代码在我的代码提交存储库中。以下是AWS文档上的示例。但是下面的代码似乎是从S3存储桶中获取代码的。是否指定文件名?如果是这样的话,谢谢。

AMIIDLookup: 
  Type: "AWS::Lambda::Function"
  Properties: 
    Handler: "index.handler"
    Role: 
      Fn::GetAtt: 
        - "LambdaExecutionRole"
        - "Arn"
    Code: 
      S3Bucket: "lambda-functions"
      S3Key: "amilookup.zip"
    Runtime: "nodejs8.10"
    Timeout: 25
    TracingConfig:
      Mode: "Active"

更多信息-这是我的cloudformation模板,该模板已推送到代码提交存储库中。 Templete和管道与内联代码完美配合。但是我不知道如何在代码提交库中指定要从文件中获取的代码。例如。如果代码在文件中-./abc/index.js

Resources: 
  LFVQS1: 
    Type: 'AWS::Lambda::Function' 
    Properties: 
      Handler: 'index.function_name**' 
      Role: 'arn:aws:iam::561731601292:role/service-role/mailfwd-role-m5rl5tu3' 
      Runtime: "nodejs8.10" 
      Code: { 
        ZipFile: "exports.wrtiteToConsole = function (event, context, callback){ console.log('Hello'); callback(null); }" } 

1 个答案:

答案 0 :(得分:0)

如果您在CodePipeline的上下文中询问(基于标记),则可以使用CloudFormation操作的ParameterOverrides配置属性来引用CodePipeline工件(存储在S3中),也可以使用S3 publish操作和参考您的CloudFormation模板中的位置。

CloudFormation操作参考:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html