sam remote invoke - AWS Serverless Application Model

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

sam remote invoke

本页提供 AWS Serverless Application Model 命令行界面的参考信息 (AWS SAM CLI) sam remote invoke 命令。

sam remote invoke 命令调用 AWS Cloud中支持的资源。

使用量

$ sam remote invoke <arguments> <options>

参数

资源 ID

要调用的支持资源的 ID。

此参数接受以下值:

  • Amazon 资源名称 (ARN)-资源的名称。ARN

    提示

    sam list stack-outputs --stack-name <stack-name>用于获取您的资源。ARN

  • 逻辑 ID – 资源的逻辑 ID。您还必须使用--stack-name选项提供 AWS CloudFormation 堆栈名称。

  • 物理 ID – 资源的物理 ID。此 ID 是在您使用部署资源时创建的 AWS CloudFormation。

    提示

    使用 sam list resources --stack-name <stack-name> 获取资源的物理 ID。

当您提供ARN或实物身份证时:

如果您提供ARN或物理 ID,请不要提供堆栈名称。当使用--stack-name选项提供堆栈名称时,或者当堆栈名称是在配置文件中定义时, AWS SAM CLI 会自动将您的资源 ID 作为 AWS CloudFormation 堆栈中的逻辑 ID 值进行处理。

当您不提供资源 ID 时:

如果您没有提供资源 ID,但确实提供了带有--stack-name选项的堆栈名称,则 AWS SAM CLI将尝试使用以下逻辑自动调用 AWS CloudFormation 堆栈中的资源:

  1. 的 AWS SAM CLI 将按以下顺序识别资源类型,并在堆栈中找到资源类型后进入下一步:

    1. Lambda

    2. Step Functions

    3. Amazon SQS

    4. Kinesis Data Streams

  2. 如果资源类型的堆栈中只有一个资源,则 AWS SAM CLI 会调用它。如果您的堆栈中存在多个该资源类型的资源,则 AWS SAM CLI 将返回错误。

以下是一些示例 AWS SAM CLI 会做的:

  • 包含两个 Lambda 函数和一个 Amazon SQS 队列的堆栈 — AWS SAM CLI 将找到 Lambda 资源类型并返回错误,因为堆栈包含多个 Lambda 函数。

  • 包含一个 Lambda 函数和两个 Amazon Kinesis Data Streams 应用程序的堆栈 — AWS SAM CLI 将找到 Lambda 函数并将其调用,因为堆栈包含单个 Lambda 资源。

  • 包含单个 Amazon SQS 队列和两个 Kinesis Data Streams 应用程序的堆栈 — AWS SAM CLI 将找到 Amazon SQS 队列并调用它,因为该堆栈包含单个 Amazon SQS 队列。

Options

--beta-features | --no-beta-features

允许或拒绝测试版功能。

--config-env TEXT

从您的环境中指定要使用的环境 AWS SAM CLI 配置文件。

默认值default

--config-file FILENAME

指定配置文件的路径和文件名。

有关配置文件的详细信息,请参阅 配置 AWS SAM CLI

默认samconfig.toml 位于项目目录的根目录。

--debug

启用调试登入 这将打印由生成的调试消息和时间戳 AWS SAM CLI.

--event, -e TEXT

要发送到目标资源的事件。

--event-file FILENAME

包含要发送到目标资源的事件的文件路径。

--help, -h

显示帮助消息并退出。

--output [ text | json ]

以特定的输出格式输出调用结果。

json— 请求元数据和资源响应以JSON结构形式返回。响应包含完整SDK输出。

text – 请求元数据以文本结构返回。资源响应以被调用资源的输出格式返回。

--parameter

其他 Boto3可以传递给正在调用的资源的参数。

Amazon Kinesis Data Streams

以下附加参数可用于将记录放入 Kinesis 数据流:

  • ExplicitHashKey='string'

  • PartitionKey='string'

  • SequenceNumberForOrdering='string'

  • StreamARN='string'

有关每个参数的描述,请参阅 Kinesis.Client.put_record

AWS Lambda

以下附加参数可用于调用 Lambda 资源并接收缓冲响应:

  • ClientContext='base64-encoded string'

  • InvocationType='[ DryRun | Event | RequestResponse ]'

  • LogType='[ None | Tail ]'

  • Qualifier='string'

以下附加参数可用于通过响应流式处理调用 Lambda 资源:

  • ClientContext='base64-encoded string'

  • InvocationType='[ DryRun | RequestResponse ]'

  • LogType='[ None | Tail ]'

  • Qualifier='string'

有关每个参数的说明,请参阅以下内容:

亚马逊简单队列服务(亚马逊SQS)

以下附加参数可用于向 Amazon SQS 队列发送消息:

  • DelaySeconds=integer

  • MessageAttributes='json string'

  • MessageDeduplicationId='string'

  • MessageGroupId='string'

  • MessageSystemAttributes='json string'

有关每个参数的描述,请参阅 SQS.client.send _Message。

AWS Step Functions

以下附加参数可用于启动状态机执行:

  • name='string'

  • traceHeader='string'

有关每个参数的描述,请参阅 SFN.client.st art_Execution。

--profile TEXT

从您的凭证文件中获取 AWS 凭证的特定个人资料。

--region TEXT

AWS 区域 资源的。例如,us-east-1

--stack-name TEXT

资源所属 AWS CloudFormation 堆栈的名称。

--test-event-name NAME

要传递给 Lambda 函数的可共享测试事件的名称。

注意

此选项仅支持 Lambda 函数。

示例

以下示例调用云中支持的资源并激活调试日志记录,该日志会打印由 AWS 云端生成的调试消息和时间戳 AWS SAM CLI:

$ sam remote invoke--debug