AWS SAM CLI Arquivo de configuração do   - AWS Serverless Application Model

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS SAM CLI Arquivo de configuração do  

A interface de linha de AWS Serverless Application Model comando (AWS SAM CLI) suporta um arquivo de configuração em nível de projeto que você pode usar para configurar AWS SAM CLI valores dos parâmetros do comando.

Para obter a documentação sobre como criar e usar arquivos de configuração, consulte Configurando o AWS SAM CLI.

Configurações padrão do arquivo de configuração

AWS SAM usa as seguintes configurações padrão do arquivo de configuração:

  • Namesamconfig.

  • Localização - Na raiz do seu projeto. Este é o mesmo local do seu arquivo template.yaml.

  • FormatoTOML. Para saber mais, consulte TOML no TOML documentação.

Veja a seguir um exemplo de estrutura de projeto que inclui o nome e o local do arquivo de configuração padrão:

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

O seguinte é um arquivo samconfig.toml de exemplo:

...
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

Formatos de arquivo de configuração suportados

Os formatos TOML e [YAML|YML] são suportados. Veja a seguinte sintaxe básica:

TOML

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

YAML

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

Especificar um arquivo de configuração

Por padrão, o AWS SAM CLI procura um arquivo de configuração na seguinte ordem:

  1. Arquivo de configuração personalizado — Se você usar a --config-file opção para especificar o nome e o local do arquivo, o AWS SAM CLI procura esse arquivo primeiro.

  2. samconfig.tomlArquivo padrão - Esse é o nome e o formato do arquivo de configuração padrão, localizado na raiz do seu projeto. Se você não especificar um arquivo de configuração personalizado, o AWS SAM CLI procura esse arquivo a seguir.

  3. samconfig.[yaml|yml]arquivo — Se o samconfig.toml não existir na raiz do seu projeto, o AWS SAM CLI procura esse arquivo.

Veja a seguir um exemplo de especificação de arquivo de configuração personalizado usando a opção --config-file:

$ sam deploy --config-file myconfig.yaml
nota

O --config-file parâmetro deve ser relativo à localização do arquivo de AWS SAM modelo porque o AWS SAM CLI precisa determinar o contexto no qual a configuração é aplicada. O samconfig.toml arquivo gerencia as configurações da sua versão do AWS SAM CLI, e a CLI procura o samconfig.toml arquivo (ou o parâmetro do arquivo de configuração substituído) na pasta relativa do arquivo. template.yaml

Noções básicas de arquivos de configuração

Environment

Um ambiente é um identificador nomeado que contém um conjunto exclusivo de configurações. Você pode ter vários ambientes em um único AWS SAM aplicativo.

O nome do ambiente padrão é default.

Use o AWS SAM CLI --config-envopção para especificar o ambiente a ser usado.

Command

O comando é o AWS SAM CLI comando para especificar valores de parâmetros para.

Para especificar valores de parâmetros para todos os comandos, use o identificador global.

Ao fazer referência a um AWS SAM CLI comando, substitua espaços ( ) e hífens () por sublinhados (). _ Veja os exemplos a seguir:

  • build

  • local_invoke

  • local_start_api

Parâmetros

Os parâmetros são especificados como pares de chave-valor.

  • A chave é a AWS SAM CLI nome da opção de comando.

  • O valor é o valor a ser especificado.

Ao especificar chaves, use o nome da opção de comando de formato longo e substitua hífens () por sublinhados (_). Veja os exemplos a seguir:

  • region

  • stack_name

  • template_file

Regras de valores de parâmetros

TOML

  • Os valores booleanos podem ser true ou false. Por exemplo, confirm_changeset = true.

  • Para valores de string, use aspas (""). Por exemplo, region = "us-west-2".

  • Para valores de lista, use aspas ("") e separe cada valor usando um espaço ( ). Por exemplo: capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM".

  • Para valores que contêm uma lista de pares de valores-chave, os pares são delimitados por espaço ( ) e o valor de cada par é cercado por aspas codificadas (\" \"). Por exemplo, tags = "project=\"my-application\" stage=\"production\"".

  • Para valores de parâmetros que podem ser especificados várias vezes, o valor é uma matriz de argumentos. Por exemplo: image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"].

YAML

  • Os valores booleanos podem ser true ou false. Por exemplo, confirm_changeset: true.

  • Para entradas que contêm um único valor de string, as aspas ("") são opcionais. Por exemplo, region: us-west-2. Isso inclui entradas que contêm vários pares de valores-chave fornecidos como uma única sequência de caracteres. Veja um exemplo a seguir:

    $ sam deploy --tags "foo=bar hello=world"
    default: deploy: parameters: tags: foo=bar hello=world
  • Para entradas que contêm uma lista de valores ou entradas que podem ser usadas várias vezes em um único comando, especifique-as como uma lista de cadeias de caracteres.

    Veja um exemplo a seguir:

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

Precedência de configuração

Ao configurar valores, a seguinte precedência ocorre:

  • Os valores dos parâmetros que você fornece na linha de comando têm precedência sobre os valores correspondentes no arquivo de configuração e na seção Parameters do arquivo de modelo.

  • Se a opção --parameter-overrides for usada na linha de comando ou em seu arquivo de configuração com a chave parameter_overrides, seus valores terão precedência sobre os valores na seção Parameters do arquivo de modelo.

  • Em seu arquivo de configuração, as entradas fornecidas para um comando específico têm precedência sobre as entradas globais. No exemplo a seguir, o comando sam deploy usará o nome da pilha 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

Criando e modificando arquivos de configuração

Criação de arquivos de configuração

Quando você cria um aplicativo usando sam init, um arquivo samconfig.toml padrão é criado. Você também pode criar manualmente seu arquivo de configuração.

Modificar arquivos de configuração

Você pode modificar manualmente seus arquivos de configuração. Além disso, durante qualquer AWS SAM CLI fluxo interativo, os valores configurados serão exibidos entre colchetes ([ ]). Se você modificar esses valores, o AWS SAM CLI atualizará seu arquivo de configuração.

Veja a seguir um exemplo de fluxo interativo usando o comando 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

Ao modificar seu arquivo de configuração, o AWS SAM CLI trata valores globais da seguinte forma:

  • Se o valor do parâmetro existir na global seção do seu arquivo de configuração, o AWS SAM CLI não grava o valor na seção de comando específica.

  • Se o valor do parâmetro existir nas seções de comando específicas global e nas seções de comando, o AWS SAM CLI exclui a entrada específica em favor do valor global.