小编Jar*_*eld的帖子

如何使用Lambda访问AWS API网关请求的HTTP标头?

我在API网关常见问题解答中看到,可以访问发送到API网关的请求标头...

如果您已经使用OAuth令牌或任何其他授权机制,则可以轻松设置API网关,以便不需要签名的API调用,只需将令牌标头转发到后端进行验证即可.

但是,我在文档中找不到如何执行此操作的示例,并且不清楚如何使用Lambda访问此数据.

我能够设置一个开放的API并获得对作为POST一部分的JSON对象的访问权限(演练:API网关和Lambda函数),但为了使用我自己的提供程序实现OAuth 2.0样式API,我需要访问"授权"标题.

我的偏好是使用Lambda和Java 8进行设置,但是使用node.js的示例也有助于理解如何实现这一点.

amazon-web-services aws-lambda aws-api-gateway

43
推荐指数
4
解决办法
3万
查看次数

无法使用CloudFormation将GSI添加到DynamoDB表

我有一个现有的DynamoDB表,它被定义为CloudFormation堆栈的一部分.根据CFN AWS :: DynamoDB :: Table文档,GlobalSecondaryIndexes属性不需要替换.它甚至可以通过以下注意事项进行详细介绍.

您可以不间断地删除或添加一个全局二级索引.

以及以下......

如果更新表以包含新的全局二级索引,AWS CloudFormation将启动索引创建,然后继续进行堆栈更新.AWS CloudFormation不会等待索引完成创建,因为回填阶段可能需要很长时间,具体取决于表的大小.

但是,实际上当我尝试执行更新时,我收到以下错误消息:

CloudFormation cannot update a stack when a custom-named resource requires replacing. Rename mytablename and update the stack again.
Run Code Online (Sandbox Code Playgroud)

由于我正在添加一个使用新属性的GSI,因此我不得不修改AttributeDefinitions,它说它确实需要替换.但是,即使我尝试添加仅具有AttributeDefinitions中定义的现有属性的GSI,我仍然会收到相同的错误消息.

这是我原始CFN定义的片段:

{
  "myTable": {
    "Type": "AWS::DynamoDB::Table",
    "Properties": {
      "TableName": "mytablename",
      "AttributeDefinitions": [
        {
          "AttributeName": "entryId",
          "AttributeType": "S"
        },
        {
          "AttributeName": "entryName",
          "AttributeType": "S"
        },
        {
          "AttributeName": "appId",
          "AttributeType": "S"
        }
      ],
      "KeySchema": [
        {
          "KeyType": "HASH",
          "AttributeName": "entryId"
        },
        {
          "KeyType": "RANGE",
          "AttributeName": "entryName"
        }
      ],
      "ProvisionedThroughput": …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation amazon-dynamodb

12
推荐指数
3
解决办法
6816
查看次数