sam sync
이 페이지는 AWS Serverless Application Model 명령줄 인터페이스(AWS SAM CLI) sam sync 명령에 대한 참조 정보를 제공합니다.
-
AWS SAM CLI에 대한 소개는 AWS SAMCLI란 무엇인가요? 섹션을 참조하세요.
-
AWS SAM CLI 사용에 대한 설명서는 AWS SAM CLI 섹션을 참조하세요.
이 sam sync 명령은 로컬 애플리케이션 변경 내용을 AWS 클라우드에 동기화합니다.
사용법
$sam sync<options>
옵션
--base-dir, -sDIRECTORY-
이 디렉터리에 대해 함수 또는 계층의 소스 코드에 대한 상대 경로를 확인합니다. 이 옵션을 사용하여 소스 코드 폴더의 상대 경로를 확인하는 방법을 변경할 수 있습니다. 기본적으로 상대 경로는 AWS SAM 템플릿 위치를 기준으로 확인됩니다.
이 옵션은 빌드 중인 루트 애플리케이션 또는 스택의 리소스 외에도 중첩된 애플리케이션 또는 스택에도 적용됩니다. 또한 이 옵션은 다음 리소스 유형 및 속성에도 적용됩니다.
-
리소스 유형:
AWS::Serverless::Function속성:CodeUri -
리소스 유형:
AWS::Serverless::Function리소스 속성:Metadata항목:DockerContext -
리소스 유형:
AWS::Serverless::LayerVersion속성:ContentUri -
리소스 유형:
AWS::Lambda::Function속성:Code -
리소스 유형:
AWS::Lambda::LayerVersion속성:Content
-
--build-imageTEXT-
애플리케이션을 빌드할 때 사용할 컨테이너 이미지의 URI. 기본적으로 AWS SAM은 Amazon Elastic Container Registry(Amazon ECR) Public의 컨테이너 이미지 리포지토리 URI를 사용합니다. 다른 이미지를 사용하려면 이 옵션을 지정합니다.
단일 명령에서 이 옵션을 여러 번 사용할 수 있습니다. 각 옵션은 문자열 또는 키-값 쌍을 허용합니다.
-
문자열 - 애플리케이션의 모든 리소스가 사용할 컨테이너 이미지의 URI를 지정합니다. 다음은 그 예제입니다.
$sam sync --build-imageamazon/aws-sam-cli-build-image-python3.8 -
키-값 쌍 - 리소스 이름을 키로 지정하고 해당 리소스와 함께 사용할 컨테이너 이미지 URI를 값으로 지정합니다. 이 형식을 사용하면 애플리케이션의 각 리소스에 대해 서로 다른 컨테이너 이미지 URI를 지정할 수 있습니다. 다음은 그 예제입니다.
$sam sync --build-imageFunction1=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 -
--capabilitiesLIST-
CloudFormation가 특정 스택을 생성할 수 있도록 지정하는 기능 목록. 일부 스택 템플릿은 AWS 계정의 권한에 영향을 줄 수 있는 리소스를 포함합니다. 예로는 새 AWS Identity and Access Management(IAM)사용자를 생성하는 경우가 있습니다. 기본값을 재정의하려면 이 옵션을 지정합니다. 유효한 값은 다음과 같습니다.
-
CAPABILITY_IAM
-
CAPABILITY_NAMED_IAM
-
CAPABILITY_RESOURCE_POLICY
-
CAPABILITY_AUTO_EXPAND
기본값:
CAPABILITY_NAMED_IAM및CAPABILITY_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-envTEXT-
사용할 구성 파일의 기본 매개변수 값을 지정하는 환경 이름입니다. 기본값은 “기본값”입니다. 구성 파일에 대한 자세한 내용은 AWS SAMCLI구성 파일 섹션을 참조하세요.
--config-filePATH-
사용할 기본 매개변수 값이 들어 있는 구성 파일의 경로 및 파일 이름입니다. 기본값은 프로젝트 디렉터리의 루트에 있는 “
samconfig.toml“입니다. 구성 파일에 대한 자세한 내용은 AWS SAMCLI구성 파일 섹션을 참조하세요. --dependency-layer | --no-dependency-layer-
동기화 프로세스의 속도를 높이기 위해 개별 함수의 종속성을 다른 계층으로 분리할지 여부를 지정합니다.
기본값:
--dependency-layer --image-repositoryTEXT-
이 명령이 함수의 이미지를 업로드하는 Amazon Elastic Container Registry(Amazon ECR) 리포지토리의 이름.
Image패키지 유형으로 선언된 함수에 필요합니다. --image-repositoriesTEXT-
Amazon ECR 리포지토리 URI에 대한 함수의 매핑. 논리적 ID의 함수 참조. 다음은 그 예제입니다.
$sam sync --image-repositoriesFunction1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo이 옵션은 하나의 명령에서 여러 번 지정할 수 있습니다.
--kms-key-idTEXT-
Amazon S3 버킷에 저장된 아티팩트를 암호화하는 데 사용되는 AWS Key Management Service(AWS KMS) 키의 ID입니다. 이 옵션을 지정하지 않을 경우 AWS SAM은 Amazon S3 관리형 암호화 키를 사용합니다.
--metadata-
템플릿에서 참조하는 모든 아티팩트에 연결할 메타데이터 맵.
--notification-arnsLIST-
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
--resourceTEXT-
동기화할 리소스 유형을 지정합니다. 여러 리소스를 동기화하기 위해 이 옵션을 여러 번 지정할 수 있습니다. 이 옵션은
--code옵션과 함께 지원됩니다. 이 값은--code에 나열된 리소스 중 하나여야 합니다. 예를 들어--resource AWS::Serverless::Function --resource AWS::Serverless::LayerVersion입니다. --resource-idTEXT-
동기화할 리소스 ID를 지정합니다. 여러 리소스를 동기화하기 위해 이 옵션을 여러 번 지정할 수 있습니다. 이 옵션은
--code옵션과 함께 지원됩니다. 예를 들어--resource-id Function1 --resource-id Function2입니다. --role-arnTEXT-
변경 세트를 적용할 때 CloudFormation이 맡은 IAM 역할의 Amazon 리소스 이름(ARN).
--s3-bucketTEXT-
이 명령이 CloudFormation 템플릿을 업로드하는 Amazon Simple Storage Service(Amazon S3) 버킷의 이름. 템플릿이 51,200바이트를 초과하는 경우
--s3-bucket또는--resolve-s3옵션이 필요합니다.--s3-bucket및--resolve-s3옵션을 모두 지정하면 오류가 발생합니다. --s3-prefixTEXT-
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-nameTEXT-
애플리케이션의 CloudFormation 스택 이름.
이 옵션은 필수입니다.
-
생성되거나 업데이트된 스택과 연결할 태그 목록입니다. 또한 CloudFormation은 이러한 태그를 지원하는 스택의 리소스로 전파합니다.
--template-file, --template, -tPATH-
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-excludeTEXT-
파일 또는 폴더를 파일 변경 관찰 대상에서 제외합니다. 이 옵션을 사용하려면
--watch도 제공해야 합니다.이 옵션은 다음과 같은 키-값 페어를 수신합니다.
-
키 — 애플리케이션에 있는 Lambda 함수의 논리적 ID.
-
값 - 제외할 관련 파일 이름 또는 폴더.
--watch-exclude옵션으로 지정된 파일이나 폴더를 업데이트하면 AWS SAM CLI가 동기화가 시작되지 않습니다. 하지만 다른 파일이나 폴더에 대한 업데이트로 인해 동기화가 시작하면 해당 파일 또는 폴더가 해당 동기화에 포함됩니다.단일 명령에서 이 옵션을 여러 번 제공할 수 있습니다.
-
예시
이 명령을 사용하는 예제는 sam sync 명령의 옵션 섹션을 참조하세요.