9

我运行它来部署我的 lambda:

sam package --template-file prod_template.yaml --s3-bucket mybucket --output-template-file packaged-template.yaml
sam deploy --template-file packaged-template.yaml --stack-name mystack --capabilities CAPABILITY_IAM

这可行,但此代码受版本控制,并且 sam 也在上传 .git 文件夹。我如何让 sam 像使用 gitignore 一样忽略一些文件夹?

4

1 回答 1

9

您需要检查您是否CodeUri在模板中提供了有效路径,它应该如下所示:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  Followers:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./src
      Handler: lambda.handler
      Runtime: nodejs12.x
      Timeout: 300

AWS 文档指出,如果CodeUri未提供,整个工作目录将被压缩并上传(我认为这是您所遇到的)。

如果您在 [in CodeUri] 中指定文件,该命令会直接将其上传到 S3 存储桶。如果您指定一个文件夹,该命令会压缩该文件夹,然后上传 .zip 文件。对于大多数资源,如果您不指定路径,该命令会压缩并上传当前工作目录。

于 2018-08-24T14:47:21.600 回答