AWS SAM CLI 구성 파일 - AWS Serverless Application Model

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SAM CLI 구성 파일

AWS Serverless Application Model 명령줄 인터페이스(AWS SAM CLI)는 구성에 사용할 수 있는 프로젝트 수준 구성 파일을 지원합니다. AWS SAM CLI 명령 파라미터 값.

구성 파일 작성 및 사용에 대한 설명서는 AWS SAM CLI 구성 섹션을 참조하세요.

기본 구성 파일 설정

AWS SAM 는 다음과 같은 기본 구성 파일 설정을 사용합니다.

  • 이름samconfig.

  • 위치 - 프로젝트의 루트에 있습니다. 이 위치는 귀하의 template.yaml 파일과 같은 위치입니다.

  • 포맷 - TOML. 자세한 내용은 TOML 의 섹션을 참조하세요. TOML 설명서 .

다음은 기본 구성 파일 이름 및 위치가 포함된 예제 프로젝트 구조입니다.

sam-app
├── README.md
├── __init__.py
├── events
├── hello_world
├── samconfig.toml
├── template.yaml
└── tests

다음은 samconfig.toml 파일의 예입니다.

...
version = 0.1

[default]
[default.global]
[default.global.parameters]
stack_name = "sam-app"

[default.build.parameters]
cached = true
parallel = true

[default.deploy.parameters]
capabilities = "CAPABILITY_IAM"
confirm_changeset = true
resolve_s3 = true

[default.sync.parameters]
watch = true

[default.local_start_api.parameters]
warm_containers = "EAGER"

[prod]
[prod.sync]
[prod.sync.parameters]
watch = false

지원되는 구성 파일 형식

TOML[YAML|YML] 형식이 지원됩니다. 다음 기본 명령문을 참조하세요.

TOML

version = 0.1 [environment] [environment.command] [environment.command.parameters] option = parameter value

YAML

version: 0.1 environment: command: parameters: option: parameter value

구성 파일을 지정합니다.

기본적으로 AWS SAM CLI 는 다음 순서로 구성 파일을 찾습니다.

  1. 사용자 지정 구성 파일 - --config-file 옵션을 사용하여 파일 이름과 위치를 지정하는 경우 AWS SAM CLI 는 먼저 이 파일을 찾습니다.

  2. 기본 samconfig.toml 파일 - 이는 귀하의 프로젝트의 루트에 있는 기본 구성 파일 이름 및 형식입니다. 사용자 지정 구성 파일을 지정하지 않으면 AWS SAM CLI 는 다음으로 이 파일을 찾습니다.

  3. samconfig.[yaml|yml] 파일 - samconfig.toml가 프로젝트의 루트에 없는 경우 AWS SAM CLI 는 이 파일을 찾습니다.

다음은 --config-file 옵션을 사용하여 사용자 지정 구성 파일을 지정하는 예시입니다.

$ sam deploy --config-file myconfig.yaml
참고

--config-file 파라미터는 AWS SAM 템플릿 파일의 위치를 기준으로 해야 합니다. AWS SAM CLI 는 구성이 적용되는 컨텍스트를 결정해야 합니다. samconfig.toml 파일은 의 버전에 대한 구성 설정을 관리합니다. AWS SAM CLI및 는 samconfig.toml 파일의 상대적 폴더에서 파일(또는 재정의된 구성 template.yaml 파일 파라미터)을 CLI 찾습니다.

구성 파일 기본 사항

환경

환경은 고유한 구성 설정 세트를 포함하는 명명된 식별자입니다. 단일 AWS SAM 애플리케이션에 여러 환경을 가질 수 있습니다.

환경 이름 기본은 default입니다.

사용 AWS SAM CLI --config-env 사용할 환경을 지정하는 옵션입니다.

Command

명령은 AWS SAM CLI 에 대한 파라미터 값을 지정하는 명령입니다.

모든 명령의 파라미터 값을 지정하려면 global 식별자를 사용합니다.

를 참조할 때 AWS SAM CLI 명령: 공백( )과 하이픈()을 밑줄()로 바꿉니다_. 다음 예를 참조하세요.

  • build

  • local_invoke

  • local_start_api

파라미터

파라미터는 키-값 페어로 지정됩니다.

  • 는 AWS SAM CLI 명령 옵션 이름입니다.

  • 은 지정할 값입니다.

키를 지정할 때는 긴 형식의 명령 옵션 이름을 사용하고 하이픈()을 밑줄(_)로 바꿉니다. 예를 들어, 다음과 같습니다.

  • region

  • stack_name

  • template_file

파라미터 값 규칙

TOML

  • 부울 값은 true 또는 false일 수 있습니다. 예: confirm_changeset = true.

  • 문자열 값에는 따옴표("")를 사용합니다. 예: region = "us-west-2".

  • 목록 값에는 따옴표("")를 사용하고 공백( )을 사용하여 각 값을 구분합니다. 예: capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM".

  • 키-값 쌍의 목록이 포함된 값의 경우 쌍은 공백으로 구분되고( ) 각 쌍의 값은 인코딩된 따옴표(\" \") 로 묶습니다. 예: tags = "project=\"my-application\" stage=\"production\"".

  • 여러 번 지정할 수 있는 파라미터 값의 경우, 값은 인수의 배열입니다. 예: image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"].

YAML

  • 부울 값은 true 또는 false일 수 있습니다. 예: confirm_changeset: true.

  • 단일 문자열 값을 포함하는 항목의 경우 따옴표("")는 선택 사항입니다. 예: region: us-west-2. 여기에는 단일 문자열로 제공되는 여러 키-값 쌍을 포함하는 항목이 포함됩니다. 다음은 그 예제입니다.

    $ sam deploy --tags "foo=bar hello=world"
    default: deploy: parameters: tags: foo=bar hello=world
  • 값 목록이 포함된 항목 또는 단일 명령으로 여러 번 사용할 수 있는 항목의 경우 해당 항목을 문자열 목록으로 지정합니다.

    다음은 그 예제입니다.

    $ sam remote invoke --parameter "InvocationType=Event" --parameter "LogType=None"
    default: remote_invoke: parameter: - InvocationType=Event - LogType=None

구성 우선 순위

값을 구성할 때는 다음과 같은 우선 순위가 적용됩니다.

  • 명령줄에서 제공하는 파라미터 값은 템플릿 파일의 구성 파일 및 Parameters 섹션에 있는 해당 값보다 우선합니다.

  • 명령줄이나 구성 파일에서 parameter_overrides 키와 함께 --parameter-overrides 옵션을 사용하는 경우 해당 값이 템플릿 파일 Parameters 섹션의 값보다 우선합니다.

  • 구성 파일에서 특정 명령에 대해 제공된 항목이 글로벌 항목보다 우선합니다. 다음 예제에서 sam deploy 명령은 my-app-stack 스택 이름을 사용합니다.

    TOML
    [default.global.parameters]
    stack_name = "common-stack"
    
    [default.deploy.parameters]
    stack_name = "my-app-stack"
    YAML
    default: global: parameters: stack_name: common-stack deploy: parameters: stack_name: my-app-stack

구성 파일 생성 및 수정

구성 파일 생성

sam init를 사용하여 애플리케이션을 만들면 기본으로 samconfig.toml 파일이 생성됩니다. 구성 파일을 수동으로 생성할 수도 있습니다.

구성 파일 수정

구성 파일을 수동으로 수정할 수 있습니다. 또한 AWS SAM CLI 대화형 흐름, 구성된 값은 괄호()로 표시됩니다[ ]. 이러한 값을 수정하면 AWS SAM CLI 가 구성 파일을 업데이트합니다.

다음은 sam deploy --guided 명령을 사용하는 대화형 흐름의 예입니다.

$ sam deploy --guided Configuring SAM deploy ====================== Looking for config file [samconfig.toml] : Found Reading default arguments : Success Setting default arguments for 'sam deploy' ========================================= Stack Name [sam-app]: ENTER AWS Region [us-west-2]: ENTER #Shows you resources changes to be deployed and require a 'Y' to initiate deploy Confirm changes before deploy [Y/n]: n #SAM needs permission to be able to create roles to connect to the resources in your template Allow SAM CLI IAM role creation [Y/n]: ENTER #Preserves the state of previously provisioned resources when an operation fails Disable rollback [y/N]: ENTER HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y Save arguments to configuration file [Y/n]: ENTER SAM configuration file [samconfig.toml]: ENTER SAM configuration environment [default]: ENTER

구성 파일을 수정할 때 AWS SAM CLI 는 다음과 같이 전역 값을 처리합니다.

  • 구성 파일의 global 섹션에 파라미터 값이 있는 경우 AWS SAM CLI 는 특정 명령 섹션에 값을 쓰지 않습니다.

  • 파라미터 값이 global 및 특정 명령 섹션 모두에 있는 경우 AWS SAM CLI 는 글로벌 값에 유리한 특정 항목을 삭제합니다.