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).
-
Para obtener una introducción a la CLI de AWS SAM, consulte ¿Qué es la CLI de AWS SAM?.
-
Para obtener documentación sobre el uso de la CLI de AWS SAM, consulta AWS SAM CLI.
El comando sam sync sincroniza los cambios de la aplicación local con Nube de AWS.
Uso
$sam sync<options>
Opciones
--base-dir, -sDIRECTORY-
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::FunctionPropiedad:CodeUri -
Tipo de recurso:
AWS::Serverless::FunctionAtributo de recurso:MetadataEntrada:DockerContext -
Tipo de recurso:
AWS::Serverless::LayerVersionPropiedad:ContentUri -
Tipo de recurso:
AWS::Lambda::FunctionPropiedad:Code -
Tipo de recurso:
AWS::Lambda::LayerVersionPropiedad:Content
-
--build-imageTEXT-
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-imageamazon/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-imageFunction1=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-sourcepara compilar el proyecto directamente en la carpeta de origen.La opción
--build-in-sourceadmite 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-sourceno es compatible con las siguientes opciones:-
--use-container
Valor predeterminado:
--no-build-in-source -
--capabilitiesLIST-
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_IAMyCAPABILITY_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-envTEXT-
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-filePATH-
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-repositoryTEXT-
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-repositoriesTEXT-
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-repositoriesFunction1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repoPuede especificar esta opción varias veces con un solo comando.
--kms-key-idTEXT-
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-arnsLIST-
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
--resourceTEXT-
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-idTEXT-
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-arnTEXT-
El nombre de recurso de Amazon (ARN) del rol de IAM que CloudFormation asume al aplicar el conjunto de cambios.
--s3-bucketTEXT-
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-bucketo la--resolve-s3. Si especificas ambas opciones--s3-buckety--resolve-s3, se producirá un error. --s3-prefixTEXT-
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-syncpara 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-syncpara realizar una implementación CloudFormation cada vez que se ejecutasam sync.Para obtener más información, consulta Omita la implementación de CloudFormation inicial.
Valor predeterminado:
--skip-deploy-sync --stack-nameTEXT-
El nombre de la pila CloudFormation de la aplicación.
Esta opción es obligatoria.
-
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, -tPATH-
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-containercon--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-excludeTEXT-
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.