sam sync - AWS Serverless Application Model

sam sync

이 페이지는 AWS Serverless Application Model 명령줄 인터페이스(AWS SAM CLI) sam sync 명령에 대한 참조 정보를 제공합니다.

sam sync 명령은 로컬 애플리케이션 변경 내용을 AWS 클라우드에 동기화합니다.

사용법

$ sam sync <options>

옵션

--base-dir, -s DIRECTORY

이 디렉터리에 대해 함수 또는 계층의 소스 코드에 대한 상대 경로를 확인합니다. 이 옵션을 사용하여 소스 코드 폴더의 상대 경로를 확인하는 방법을 변경할 수 있습니다. 기본적으로 상대 경로는 AWS SAM 템플릿 위치를 기준으로 확인됩니다.

이 옵션은 빌드 중인 루트 애플리케이션 또는 스택의 리소스 외에도 중첩된 애플리케이션 또는 스택에도 적용됩니다. 또한 이 옵션은 다음 리소스 유형 및 속성에도 적용됩니다.

  • 리소스 유형: AWS::Serverless::Function 속성: CodeUri

  • 리소스 유형: AWS::Serverless::Function 리소스 속성: Metadata 항목: DockerContext

  • 리소스 유형: AWS::Serverless::LayerVersion 속성: ContentUri

  • 리소스 유형: AWS::Lambda::Function 속성: Code

  • 리소스 유형: AWS::Lambda::LayerVersion 속성: Content

--build-image TEXT

애플리케이션을 빌드할 때 사용할 컨테이너 이미지의 URI. 기본적으로 AWS SAM은 Amazon Elastic Container Registry(Amazon ECR) Public의 컨테이너 이미지 리포지토리 URI를 사용합니다. 다른 이미지를 사용하려면 이 옵션을 지정합니다.

단일 명령에서 이 옵션을 여러 번 사용할 수 있습니다. 각 옵션은 문자열 또는 키-값 쌍을 허용합니다.

  • 문자열 - 애플리케이션의 모든 리소스가 사용할 컨테이너 이미지의 URI를 지정합니다. 다음은 그 예제입니다.

    $ sam sync --build-image amazon/aws-sam-cli-build-image-python3.8
  • 키-값 쌍 - 리소스 이름을 키로 지정하고 해당 리소스와 함께 사용할 컨테이너 이미지 URI를 값으로 지정합니다. 이 형식을 사용하면 애플리케이션의 각 리소스에 대해 서로 다른 컨테이너 이미지 URI를 지정할 수 있습니다. 다음은 그 예제입니다.

    $ sam sync --build-image Function1=amazon/aws-sam-cli-build-image-python3.8

이 옵션은 --use-container 옵션이 지정된 경우에만 적용되며, 그렇지 않으면 오류가 발생합니다.

--build-in-source | --no-build-in-source

소스 폴더에서 프로젝트를 직접 빌드하기 위한 --build-in-source를 제공합니다.

--build-in-source 옵션은 다음과 같은 런타임과 빌드 메서드를 지원합니다.

  • 런타임 - sam init --runtime 옵션에서 지원하는 모든 Node.js 런타임.

  • 빌드 메서드 - Makefile, esbuild.

--build-in-source 옵션은 다음 옵션과 호환되지 않습니다.

  • --use-container

기본값: --no-build-in-source

--capabilities LIST

CloudFormation가 특정 스택을 생성할 수 있도록 지정하는 기능 목록. 일부 스택 템플릿은 AWS 계정의 권한에 영향을 줄 수 있는 리소스를 포함합니다. 예로는 새 AWS Identity and Access Management(IAM)사용자를 생성하는 경우가 있습니다. 기본값을 재정의하려면 이 옵션을 지정합니다. 유효한 값은 다음과 같습니다.

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

  • CAPABILITY_RESOURCE_POLICY

  • CAPABILITY_AUTO_EXPAND

기본값: CAPABILITY_NAMED_IAMCAPABILITY_AUTO_EXPAND

--code

기본적으로 AWS SAM은 애플리케이션의 모든 리소스를 동기화합니다. 다음을 포함하는 코드 리소스만 동기화하려면 이 옵션을 지정합니다.

  • AWS::Serverless::Function

  • AWS::Lambda::Function

  • AWS::Serverless::LayerVersion

  • AWS::Lambda::LayerVersion

  • AWS::Serverless::Api

  • AWS::ApiGateway::RestApi

  • AWS::Serverless::HttpApi

  • AWS::ApiGatewayV2::Api

  • AWS::Serverless::StateMachine

  • AWS::StepFunctions::StateMachine

코드 리소스를 동기화하기위해 AWS SAM은 AWS CloudFormation을 통해 배포하는 대신 AWS 서비스 API를 직접 사용합니다. CloudFormation 스택을 업데이트하려면 sam sync --watch 또는 sam deploy를 실행합니다.

--config-env TEXT

사용할 구성 파일의 기본 매개변수 값을 지정하는 환경 이름입니다. 기본값은 “기본값”입니다. 구성 파일에 대한 자세한 내용은 AWS SAMCLI구성 파일 섹션을 참조하세요.

--config-file PATH

사용할 기본 매개변수 값이 들어 있는 구성 파일의 경로 및 파일 이름입니다. 기본값은 프로젝트 디렉터리의 루트에 있는 “samconfig.toml“입니다. 구성 파일에 대한 자세한 내용은 AWS SAMCLI구성 파일 섹션을 참조하세요.

--dependency-layer | --no-dependency-layer

동기화 프로세스의 속도를 높이기 위해 개별 함수의 종속성을 다른 계층으로 분리할지 여부를 지정합니다.

기본값: --dependency-layer

--image-repository TEXT

이 명령이 함수의 이미지를 업로드하는 Amazon Elastic Container Registry(Amazon ECR) 리포지토리의 이름. Image 패키지 유형으로 선언된 함수에 필요합니다.

--image-repositories TEXT

Amazon ECR 리포지토리 URI에 대한 함수의 매핑. 논리적 ID의 함수 참조. 다음은 그 예제입니다.

$ sam sync --image-repositories Function1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo

이 옵션은 하나의 명령에서 여러 번 지정할 수 있습니다.

--kms-key-id TEXT

Amazon S3 버킷에 저장된 아티팩트를 암호화하는 데 사용되는 AWS Key Management Service(AWS KMS) 키의 ID입니다. 이 옵션을 지정하지 않을 경우 AWS SAM은 Amazon S3 관리형 암호화 키를 사용합니다.

--metadata

템플릿에서 참조하는 모든 아티팩트에 연결할 메타데이터 맵.

--notification-arns LIST

CloudFormation이 스택과 열결하는 Amazon Simple Notification Service(Amazon SNS) 주제 ARN의 목록.

--no-use-container

IDE 툴킷이 기본 동작을 설정하는 데 사용할 수 있는 옵션입니다.

--parameter-overrides

키-값 페어로 인코딩된 CloudFormation 매개변수를 포함하는 스트링이 우선합니다. AWS Command Line Interface(AWS CLI)와 같은 형식을 사용합니다. AWS SAM CLI 형식은 명시적 키 및 값 키워드이며 각 재정의는 공백으로 구분됩니다. 다음은 두 가지 예제입니다.

  • --parameter-overrides ParameterKey=hello,ParameterValue=world

  • --parameter-overrides ParameterKey=hello,ParameterValue=world ParameterKey=example1,ParameterValue=example2 ParameterKey=apple,ParameterValue=banana

--resource TEXT

동기화할 리소스 유형을 지정합니다. 여러 리소스를 동기화하기 위해 이 옵션을 여러 번 지정할 수 있습니다. 이 옵션은 --code 옵션과 함께 지원됩니다. 이 값은 --code에 나열된 리소스 중 하나여야 합니다. 예를 들어 --resource AWS::Serverless::Function --resource AWS::Serverless::LayerVersion입니다.

--resource-id TEXT

동기화할 리소스 ID를 지정합니다. 여러 리소스를 동기화하기 위해 이 옵션을 여러 번 지정할 수 있습니다. 이 옵션은 --code 옵션과 함께 지원됩니다. 예를 들어 --resource-id Function1 --resource-id Function2입니다.

--role-arn TEXT

변경 세트를 적용할 때 CloudFormation이 맡은 IAM 역할의 Amazon 리소스 이름(ARN).

--s3-bucket TEXT

이 명령이 CloudFormation 템플릿을 업로드하는 Amazon Simple Storage Service(Amazon S3) 버킷의 이름. 템플릿이 51,200바이트를 초과하는 경우 --s3-bucket 또는 --resolve-s3 옵션이 필요합니다. --s3-bucket--resolve-s3 옵션을 모두 지정하면 오류가 발생합니다.

--s3-prefix TEXT

Amazon S3 버킷에 업로드하는 아티팩트의 이름에 추가되는 접두사. 접두사 이름은 Amazon S3 버킷의 경로 이름(폴더 이름)입니다. 이는 Zip 패키지 유형으로 선언된 함수에만 적용됩니다.

--save-params

명령줄에서 AWS SAM 구성 파일에 제공한 파라미터를 저장합니다.

--skip-deploy-sync | --no-skip-deploy-sync

필요하지 않은 경우 초기 인프라 동기화를 건너뛰는 --skip-deploy-sync를 지정합니다. AWS SAM CLI는 로컬 AWS SAM 템플릿을 배포된 CloudFormation 템플릿과 비교하여 변경 사항이 감지된 경우에만 배포를 수행합니다.

sam sync가 실행될 때마다 CloudFormation 배포를 수행하도록 --no-skip-deploy-sync를 지정합니다.

자세한 내용은을 참조하십시오초기 CloudFormation 배포는 건너뜁니다..

기본값: --skip-deploy-sync

--stack-name TEXT

애플리케이션의 CloudFormation 스택 이름.

이 옵션은 필수입니다.

--tags LIST

생성되거나 업데이트된 스택과 연결할 태그 목록입니다. 또한 CloudFormation은 이러한 태그를 지원하는 스택의 리소스로 전파합니다.

--template-file, --template, -t PATH

AWS SAM 템플릿이 위치한 경로 및 파일 이름입니다.

참고

이 옵션을 지정하는 경우 AWS SAM은 템플릿과 템플릿이 가리키는 로컬 리소스만에만 배포합니다.

--use-container, -u

함수가 기본적으로 컴파일된 종속성이 있는 패키지를 사용하는 경우, 이 옵션을 사용하여 AWS Lambda 유사 Docker 컨테이너 내에 함수를 빌드합니다.

참고

현재 이 옵션은 --dependency-layer와 호환되지 않습니다. --use-container--dependency-layer와 함께 사용하면 AWS SAM CLI는 이를 알리고 --no-dependency-layer를 계속 사용합니다.

--watch

로컬 애플리케이션의 변경 내용을 감시하고 이를 AWS 클라우드에 자동으로 동기화하는 프로세스를 시작합니다. 기본적으로 이 옵션을 지정하면 AWS SAM은 업데이트 시 애플리케이션의 모든 리소스를 동기화합니다. 이 옵션을 사용하면 AWS SAM은 초기 CloudFormation 배포를 수행합니다. 그런 다음 AWS SAM은 AWS 서비스 API를 사용하여 코드 리소스를 업데이트합니다. AWS SAM은 CloudFormation을 사용하여 AWS SAM 템플릿을 업데이트할 때 인프라 리소스를 업데이트합니다.

--watch-exclude TEXT

파일 또는 폴더를 파일 변경 관찰 대상에서 제외합니다. 이 옵션을 사용하려면 --watch 도 제공해야 합니다.

이 옵션은 다음과 같은 키-값 페어를 수신합니다.

  • — 애플리케이션에 있는 Lambda 함수의 논리적 ID.

  • - 제외할 관련 파일 이름 또는 폴더.

--watch-exclude 옵션으로 지정된 파일이나 폴더를 업데이트하면 AWS SAM CLI가 동기화가 시작되지 않습니다. 하지만 다른 파일이나 폴더에 대한 업데이트로 인해 동기화가 시작하면 해당 파일 또는 폴더가 해당 동기화에 포함됩니다.

단일 명령에서 이 옵션을 여러 번 제공할 수 있습니다.

예시

이 명령을 사용하는 예제는 sam sync 명령의 옵션 섹션을 참조하세요.