AWS SAMArchivo de configuración de la CLI - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS SAMArchivo de configuración de la CLI

LaAWS SAMCLI admite un archivo de configuración a nivel de proyecto que almacena los parámetros predeterminados para sus comandos. Este archivo de configuración se encuentra en elFormato de archivo TOML, y el nombre del archivo predeterminado essamconfig.toml. La ubicación predeterminada del archivo es el directorio raíz de su proyecto, que contiene elAWS SAMarchivo de plantilla de.

Puede editar manualmente este archivo para definir los parámetros predeterminados para cualquierAWS SAMCommand de la CLI. Además, elsam deploy --guidedescribe un subconjunto de parámetros en el archivo de configuración. Para obtener más información acerca de este comando, consulteEscritura de configuraciones consam deploy --guidedmás adelante en este tema.

Ejemplo

A continuación se muestra un archivo de configuración de ejemplo que contiene tres conjuntos de parámetros para eldefaultentorno. Un conjunto es para todos los comandos, otro para eldeployy uno es para elbuildcomando.

 version=0.1
 [default.global.parameters]
 stack_name = "common-stack"
 
 [default.deploy.parameters]
 stack_name = "my-app-stack"
 s3_bucket = "my-source-bucket"
 s3_prefix = "my-s3-prefix"
 image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]
 region = "us-west-2"
 confirm_changeset = true
 capabilities = "CAPABILITY_IAM"
 tags = "project=\"my-application\" stage=\"production\""

 [default.build.parameters]
 container_env_var = ["Function1.GITHUB_TOKEN=TOKEN1", "Function2.GITHUB_TOKEN=TOKEN2"]
 container_env_var_file = "env.json"
 no_beta_features = true

Reglas de los archivos de configuración

LaAWS SAMCLI aplica las siguientes reglas a los archivos de configuración:

Nombre y ubicación del archivo

  • El archivo de configuración predeterminado se llamasamconfig.tomly se encuentra en el directorio raíz del proyecto.

  • Puede invalidar el nombre y la ubicación predeterminados del archivo usando el--config-fileparámetro.

Tablas

  • LaAWS SAMCLI utiliza tablas TOML para agrupar las entradas de configuración por entorno y comando. Un único archivo de configuración puede contener tablas para varios entornos, comandos y subcomandos.

  • El nombre del entorno predeterminado se denominadefault. Puede invalidar el nombre del entorno predeterminado usando el--config-envparámetro.

  • Para los comandos, el formato del encabezado de tabla es[environment.command.parameters]. Por ejemplo, para elsam deploycomando para eldefaultentorno, el encabezado de la tabla de configuración es[default.deploy.parameters].

  • Para los subcomandos, el formato del encabezado de tabla es[environment.command_subcommand.parameters]. Es decir, delimitar el comando y el subcomando con_(guion bajo). Por ejemplo, para elsam local invokecomando para eldefaultentorno, el encabezado de la tabla de configuración es[default.local_invoke.parameters].

  • Si algún comando o subcomando contiene un-(guión), sustitúyalo por_(guion bajo). Por ejemplo, para elsam local start-api, el encabezado de la tabla de configuración es[default.local_start_api.parameters].

  • Para especificar parámetros para todos los comandos, utilice laglobalpalabra clave como comando del encabezado de la tabla ([environment.global.parameters]). Por ejemplo, el encabezado de tabla global deldefaultel entorno es[default.global.parameters].

Entradas de configuración de

  • Cada entrada de configuración es un par clave-valor TOML.

  • La clave de configuración es el nombre del parámetro de formato largo con el-(guión) sustituido por_(guion bajo). Para obtener la lista de parámetros disponibles para cada comando, consulte laAWS SAMReferencia de comandos de la CLIo ejecutesam command --help.

  • El valor de configuración puede adoptar las formas siguientes:

    • Para los parámetros de alternancia, el valor puede sertrueofalse(sin comillas). Por ejemplo, confirm_changeset = true.

    • Para los parámetros que toman un solo argumento, el valor es el argumento rodeado por" "(comillas). Por ejemplo, region = "us-west-2".

    • Para los parámetros que toman una lista de argumentos, los argumentos están delimitados por espacios dentro" "(comillas). Por ejemplo, capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM".

      • Para especificar una lista de pares clave-valor, los pares están delimitados por espacios y el valor de cada par está rodeado por codificación" "(comillas). Por ejemplo, tags = "project=\"my-application\" stage=\"production\"".

    • Para los parámetros que puede especificar varias veces, el valor es una matriz de argumentos. Por ejemplo, image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"].

Prioridad

  • Los valores de parámetros que proporciona en la línea de comandos tienen prioridad sobre las entradas correspondientes del archivo de configuración. Por ejemplo, si el archivo de configuración contiene la entradastack_name = "DefaultStack"y ejecute el comandosam deploy --stack-name MyCustomStack, el nombre de la pila desplegada esMyCustomStack.

  • Para el registroparameter_overrides, tanto los valores de parámetro que se proporcionan en la línea de comandos como las entradas del archivo de configuración tienen prioridad sobre los objetos correspondientes declarados en elParameterssección del archivo de plantilla de.

  • Las entradas que proporciona en una tabla de comandos específica tienen prioridad sobre las entradas de unglobalsección de comandos. Supongamos, por ejemplo, que su archivo de configuración contiene las siguientes tablas y entradas:

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

    En este caso, el camposam deployusa el nombre de la pilamy-app-stack, y cualquier otro comando (por ejemplo,sam logs) usa el nombre de la pilacommon-stack.

Escritura de configuraciones consam deploy --guided

Cuando ejecutas elsam deploy --guidedcomando, elAWS SAMCLI le guía a lo largo de la implementación con una serie de solicitudes.

Estas indicaciones incluyen la pregunta"Save arguments to samconfig.toml [Y/n]:". Si respondesYa este mensaje, elAWS SAMCLI actualiza el archivo de configuración con valores para eldeploycomando. Por ejemplo, para eldefaultentorno,AWS SAMactualiza el[default.deploy.parameters]mesa.

La lista de entradas deldeploytabla de comandos queAWS SAMpuede actualizar incluye lo siguiente:

  • stack_name

  • s3_bucket

  • s3_prefix

  • image_repository

  • region

  • confirm_changeset

  • capabilities

  • signing_profiles

  • disable_rollback

  • parameter_overrides

    nota

    Hay un caso especial para un archivo de configuración que contiene entradas para el mismo parámetro en ambosdeployyglobaltablas de comandos. En este caso, si ejecutassam deploy --guidedy proporcione el mismo valor para ese parámetro que elglobalentrada de tabla de comandos y, a continuación,deployse elimina la entrada de tabla de comandos.

    Especificando en elsam deploy --guidedindicar el mismo valor que ya se ha especificado en elglobaltabla de comandos,AWS SAMasume que desea utilizar de forma predeterminada el valor de laglobaltabla de comandos.

Reglas para valores predeterminados de solicitud guiada

Para controlar los valores predeterminados de las solicitudes que elAWS SAMLa CLI se muestra cuando ejecutasam deploy --guided, puede especificar parámetros en la línea de comandos o entradas de un archivo de configuración existente.

Las reglas de estas solicitudes son las siguientes:

  • Si especifica valores en la línea de comando, elAWS SAMCLI utiliza esos valores de línea de comandos como valores predeterminados para las solicitudes correspondientes.

  • Si hay un archivo de configuración existente, elAWS SAMCLI utiliza entradas de la tabla coincidente de ese archivo como valores predeterminados para las solicitudes correspondientes.

Las reglas de precedencia entre la línea de comandos y el archivo de configuración son las mismas que se indican en elPrioridadsección anterior en este tema.