sam sync - AWS Serverless Application Model

sam sync

Esta página proporciona información de referencia para el comando sam sync de la Interfaz de línea de comando de AWS Serverless Application Model (AWS SAMCLI).

El comando sam sync sincroniza los cambios de la aplicación local con Nube de AWS.

Uso

$ sam sync <options>

Opciones

--base-dir, -s DIRECTORY

Resuelve las rutas relativas al código fuente de la función o capa con respecto a este directorio. Utiliza esta opción para cambiar la forma en que se resuelven las rutas relativas a las carpetas de código fuente. De forma predeterminada, las rutas relativas se resuelven con respecto a la ubicación de la plantilla AWS SAM.

Además de los recursos de la aplicación o pila raíz que esté creando, esta opción también se aplica a las aplicaciones o pilas anidadas. Además, esta opción se aplica a los siguientes tipos y propiedades de recursos:

  • Tipo de recurso: AWS::Serverless::Function Propiedad: CodeUri

  • Tipo de recurso: AWS::Serverless::Function Atributo de recurso: Metadata Entrada: DockerContext

  • Tipo de recurso: AWS::Serverless::LayerVersion Propiedad: ContentUri

  • Tipo de recurso: AWS::Lambda::Function Propiedad: Code

  • Tipo de recurso: AWS::Lambda::LayerVersion Propiedad: Content

--build-image TEXT

El URI de la imagen de contenedor que quiere utilizar al crear la aplicación. De forma predeterminada, AWS SAM utiliza el URI del repositorio de imágenes de contenedor de Amazon Elastic Container Registry (Amazon ECR) Public. Especifica esta opción para utilizar una imagen diferente.

Puede utilizar esta opción varias veces con un solo comando. Cada opción acepta una cadena o un par clave-valor.

  • Cadena: especifica el URI de la imagen del contenedor que utilizarán todos los recursos de la aplicación. A continuación, se muestra un ejemplo:

    $ sam sync --build-image amazon/aws-sam-cli-build-image-python3.8
  • Par clave-valor: especifica el nombre del recurso como clave y el URI de la imagen del contenedor que se utilizará con ese recurso como valor. Utiliza este formato para especificar un URI de imagen de contenedor diferente para cada recurso de la aplicación. A continuación, se muestra un ejemplo:

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

Esta opción solo se aplica si se especifica la opción --use-container; de lo contrario, se producirá un error.

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

Proporciona --build-in-source para compilar el proyecto directamente en la carpeta de origen.

La opción --build-in-source admite los siguientes tiempos de ejecución y métodos de compilación:

  • Tiempos de ejecución: cualquier tiempo de ejecución Node.js compatible con la opción sam init --runtime.

  • Métodos de compilación: Makefile, esbuild.

La opción --build-in-source no es compatible con las siguientes opciones:

  • --use-container

Valor predeterminado: --no-build-in-source

--capabilities LIST

Una lista de capacidades que especifica para permitir a CloudFormation la creación de determinadas pilas. Algunas plantillas de pila incluyen recursos que pueden afectar los permisos de su Cuenta de AWS. Por ejemplo, mediante la creación de nuevos usuarios AWS Identity and Access Management (IAM). Especifica esta opción para anular los valores predeterminados. Entre los valores válidos se incluyen los siguientes:

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

  • CAPABILITY_RESOURCE_POLICY

  • CAPABILITY_AUTO_EXPAND

Valores predeterminados: CAPABILITY_NAMED_IAM y CAPABILITY_AUTO_EXPAND

--code

De forma predeterminada, AWS SAM sincroniza todos los recursos de la aplicación. Especifica esta opción para sincronizar solo los recursos de código, que incluyen lo siguiente:

  • 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

Para sincronizar los recursos de código, AWS SAM utiliza las API de servicio de AWS directamente, en lugar de implementarlas mediante AWS CloudFormation. Para actualizar la pila CloudFormation, ejecuta sam sync --watch o sam deploy.

--config-env TEXT

El nombre del entorno que especifica los valores de los parámetros predeterminados del archivo de configuración que se va a utilizar. El valor por defecto es «predeterminado». Para obtener más información sobre los archivos de configuración, consulta Archivo de configuración de la CLI de AWS SAM.

--config-file PATH

La ruta y el nombre del archivo de configuración que contiene los valores de parámetros predeterminados que se van a utilizar. El valor por defecto es «samconfig.toml» en la raíz del directorio del proyecto. Para obtener más información sobre los archivos de configuración, consulta Archivo de configuración de la CLI de AWS SAM.

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

Especifica si se deben separar las dependencias de las funciones individuales en otra capa para acelerar el proceso de sincronización.

Valor predeterminado: --dependency-layer

--image-repository TEXT

El nombre del repositorio Amazon Elastic Container Registry (Amazon ECR) en el que este comando carga la imagen de la función. Es necesario para las funciones declaradas con el tipo de paquete Image.

--image-repositories TEXT

Una asignación de funciones a su URI de repositorio de Amazon ECR. Haga referencia a las funciones por su ID lógico. A continuación, se muestra un ejemplo:

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

Puede especificar esta opción varias veces con un solo comando.

--kms-key-id TEXT

El ID de una clave AWS Key Management Service (AWS KMS) que se utiliza para cifrar los artefactos que se encuentran en reposo en el bucket de Amazon S3. Si no especifica esta opción, AWS SAM utiliza las claves de cifrado administradas por Amazon S3.

--metadata

Un mapa de metadatos para adjuntar a todos los artefactos a los que haga referencia en la plantilla.

--notification-arns LIST

Una lista de los ARN de temas de Amazon Simple Notification Service (Amazon SNS) que CloudFormation asocia a la pila.

--no-use-container

Una opción que permite usar el kit de herramientas de IDE para establecer el comportamiento predeterminado.

--parameter-overrides

Una cadena que contiene anulaciones de parámetros CloudFormation codificadas como pares de clave-valor. Usa el mismo formato que AWS Command Line Interface (AWS CLI). El formato de la CLI de AWS SAM es de palabras clave y de valor explícitas, y cada modificación está separada por un espacio. A continuación, se incluyen dos ejemplos:

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

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

--resource TEXT

Especifica el tipo de recurso que se va a sincronizar. Para sincronizar varios recursos, puede especificar esta opción varias veces. Esta opción es compatible con la opción --code. El valor debe ser uno de los recursos que se enumeran en --code. Por ejemplo, --resource AWS::Serverless::Function --resource AWS::Serverless::LayerVersion.

--resource-id TEXT

Especifica el ID del recurso que se va a sincronizar. Para sincronizar varios recursos, puede especificar esta opción varias veces. Esta opción es compatible con la opción --code. Por ejemplo, --resource-id Function1 --resource-id Function2.

--role-arn TEXT

El nombre de recurso de Amazon (ARN) del rol de IAM que CloudFormation asume al aplicar el conjunto de cambios.

--s3-bucket TEXT

El nombre del bucket de Amazon Simple Storage Service (Amazon S3) en el que este comando carga la plantilla CloudFormation. Si la plantilla tiene más de 51 200 bytes, se requiere la opción --s3-bucket o la --resolve-s3. Si especificas ambas opciones --s3-bucket y --resolve-s3, se producirá un error.

--s3-prefix TEXT

El prefijo que se agrega a los nombres de los artefactos que carga en el bucket de Amazon S3. El nombre del prefijo es un nombre de ruta (nombre de carpeta) del bucket de Amazon S3. Esto se aplica únicamente a las funciones declaradas con el tipo de paquete Zip.

--save-params

Guarda los parámetros que proporciones en la línea de comandos en el archivo de configuración de AWS SAM.

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

Especifica --skip-deploy-sync para omitir la sincronización inicial de la infraestructura si no es necesaria. AWS SAM CLI comparará la plantilla local de AWS SAM con la plantilla implementada de CloudFormation y realizará una implementación solo si se detecta un cambio.

Especifica --no-skip-deploy-sync para realizar una implementación CloudFormation cada vez que se ejecuta sam sync.

Para obtener más información, consulta Omita la implementación de CloudFormation inicial.

Valor predeterminado: --skip-deploy-sync

--stack-name TEXT

El nombre de la pila CloudFormation de la aplicación.

Esta opción es obligatoria.

--tags LIST

Una lista de etiquetas para asociar con la pila que se crea o actualiza. CloudFormation también propaga estas etiquetas a los recursos de la pila que las admiten.

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

La ruta y el nombre del archivo donde se encuentra la plantilla de AWS SAM.

nota

Si especificas esta opción, AWS SAM solo despliega la plantilla y los recursos locales a los que apunta.

--use-container, -u

Si sus funciones dependen de paquetes que tienen dependencias compiladas de forma nativa, utilice esta opción para crear la función dentro de un contenedor Docker similar a AWS Lambda.

nota

Actualmente, esta opción no es compatible con --dependency-layer. Si usas --use-container con --dependency-layer, la CLI de AWS SAM le informará y continuará con --no-dependency-layer.

--watch

Inicia un proceso que comprueba si hay cambios en la aplicación local y los sincroniza automáticamente con Nube de AWS. De forma predeterminada, al especificar esta opción, AWS SAM sincroniza todos los recursos de la aplicación a medida que los actualiza. Con esta opción, AWS SAM realiza una implementación de CloudFormation inicial. A continuación, AWS SAM utiliza las API de servicio de AWS para actualizar los recursos de código. AWS SAM utiliza CloudFormation para actualizar los recursos de infraestructura al actualizar la plantilla AWS SAM.

--watch-exclude TEXT

Excluye un archivo o carpeta de ser observado para cambios de archivo. Para utilizar esta opción, también se debe proporcionar --watch.

Esta opción recibe un par de clave-valor:

  • Clave: el identificador lógico de una función de Lambda en la aplicación.

  • Valor: el nombre del archivo o la carpeta asociados que se van a excluir.

Al actualizar los archivos o carpetas especificados en la opción --watch-exclude, AWS SAM CLI no iniciará una sincronización. Sin embargo, cuando una actualización de otros archivos o carpetas inicie una sincronización, estos archivos o carpetas se incluirán en dicha sincronización.

Puede proporcionar esta opción varias veces en un mismo comando.

Ejemplos

Para ver ejemplos sobre el uso de este comando, consulte Opciones para el comando de sincronización sam.