我使用 sam cli 来创建一个项目。当我打包并部署时,它会默认创建 lambda 以及具有阶段和生产阶段、策略、角色等的 api 网关,而无需在 cloudformation 模板中显式定义(请参阅下面的代码)。由于它自动生成 api 网关,如果我想为下面模板生成的 api 添加 api 密钥或某种授权,我该如何添加/附加?
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
simple-node-api
Sample SAM Template for simple-node-api
Globals:
Function:
Timeout: 3
Resources:
ServerlessHttpApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
Auth:
ApiKeyRequired: true # sets for all methods
DefinitionBody:
swagger:2.0
paths:
"/myresource":
post:
x-amazon-apigateway-integration
httpMethod: post
type: aws_proxy
uri: ...
ApiKey:
Type: AWS::ApiGateway::ApiKey
Properties:
Name: !Join ["", [{"Ref": "AWS::StackName"}, "-apikey"]]
Description: "CloudFormation API Key V1"
Enabled: true
GenerateDistinctId: false
Value: abcdefg123456 …Run Code Online (Sandbox Code Playgroud) 根据 aws 文档,api 网关中的最大超时限制小于 30 秒。因此,如果请求/响应需要超过 30 秒,则将 sagemaker 端点与 api 网关连接起来就没有意义。有什么解决方法吗?在 api 网关和 sagemaker 端点之间添加 lambda 将增加更多时间来处理请求/响应,这是我想避免的。此外,还会增加 lambda 冷启动时间,并且 sagemaker 无服务器端点构建在 lambda 之上,因此也会增加冷启动时间。有没有一种方法可以调用无服务器 sagemaker 端点,而无需这些开销?
我在 React js 应用程序中创建了一个组件,它使用 fetch 调用 api 并获取一些 json 数据,如下所示。我怎样才能在我自己的html代码中按原样显示json数据中的html?
data = {
duration : "1",
html : "<div><p>some message here</p><p> more text here <span> styled text <span><p></div>"
}
Run Code Online (Sandbox Code Playgroud)