sam remote invoke - AWS Serverless Application Model

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

sam remote invoke

本页提供 AWS Serverless Application Model 命令行界面 (AWS SAMCLI) 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 或物理 ID 时:

如果您提供 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 应用程序的堆栈 — 由于堆栈包含单个 Lambda 资源,因此将 AWS SAM CLI找到 Lambda 函数并将其调用。

  • 包含单个 Amazon SQS 队列和两个 Kinesis Data Streams 应用程序的堆栈 — 由于该堆栈包含单个亚马逊 SQS 队列,因此 AWS SAM CLI将找到亚马逊 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'

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

Amazon Simple Queue Service(Amazon 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.start_execution

--profile TEXT

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

--region TEXT

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

--stack-name TEXT

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

--test-event-name NAME

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

注意

此选项仅支持 Lambda 函数。