如何从sam deploy命令中排除文件夹?

red*_*888 6 amazon-web-services aws-lambda aws-sam-cli

我运行此命令来部署我的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
Run Code Online (Sandbox Code Playgroud)

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

Llo*_*oyd 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
Run Code Online (Sandbox Code Playgroud)

AWS文档的状态,如果CodeUri没有提供,整个工作目录将被压缩并上传(我想这是你遇到什么)。

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