标签: aws-serverless

使用IAM策略文档对象列表作为AWS :: Serverless ::功能策略

根据无服务器应用程序模型中的文档,AWS::Serverless::Function可以为Policies资源的属性指定IAM策略文档对象(PDO)的列表.

但是,当我尝试定义IAM PDO时,AWS Toolkit for Visual Studio正在标记语法错误: 在此输入图像描述

以下是我的Resources部分的完整示例:

"Resources": { "Example" : { "Type" : "AWS::Serverless::Function", "Properties": { "Handler": "Example::Example.Controllers.ExampleController::ExampleAction", "Runtime": "dotnetcore2.0", "CodeUri": "", "MemorySize": 256, "Timeout": 30, "Policies": [{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" } }], "Events": { "PutResource": { "Type": "Api", "Properties": { "Path": "/{id}", "Method": "GET" } } } } } }

有什么我错了,或者SAM或AWS Toolkit语法验证有问题吗?

amazon-web-services aws-serverless aws-visual-studio-toolkit serverless-application-model

6
推荐指数
1
解决办法
146
查看次数

使用 SAM 创建 API 网关代理资源

在 SAM(亚马逊的无服务器应用程序模型)中创建代理资源的要求显然很简单。事实上如此简单以至于亚马逊的文档似乎将其作为练习留给读者!

我想创建一个 AWS API Gateway 全能端点来将所有内容代理到另一个 HTTP 服务。

在 AWS 控制台中,我尝试构建的配置如下所示:

在此处输入图片说明

在此处看到了 Christian Johansen 的这篇优秀文章和他的相关 Stack Overflow 问题了解如何在 CloudFormation 中做同样的事情。我想我可以只在 SAM 中使用该代码,但是,SAM 具有其隐式和显式 API,因此如果“正确的方法”是引用隐式资源,我想避免创建显式资源。

有谁知道如何做到这一点?

amazon-web-services aws-serverless aws-sam serverless-application-model

6
推荐指数
1
解决办法
2653
查看次数

无服务器框架 - 使用 AWS SSM Parameter Store 需要什么权限?

我打开这个问题是因为似乎没有关于此的文档,所以我想在反复试验中浪费大量时间后提供答案。

作为背景,无服务器框架 [允许从 AWS SSM Parameter Store 加载纯文本和 SecureString 值]。1

执行无服务器部署时,访问和加载这些 SSM Parameter Store 值需要什么权限?

amazon-iam aws-lambda serverless-framework serverless aws-serverless

6
推荐指数
1
解决办法
3682
查看次数

AWS Lambda +无服务器框架-使网站可从中国访问

我试图了解我需要经历的各个步骤和要求,以便使我们的网站在法规方面(长防火墙)在中国可用,也在技术方面(技术限制和执行更改)从中国提供https://unly.org/

目前似乎不允许这样做:http : //www.chinafirewalltest.com/? siteurl= https%3A%2F%2Funly.org%2F

在此处输入图片说明

我不需要也不想拥有.ch网站,我只想通过https://unly.org/将我的网站提供中文版本。此外,该网站目前托管在AWS Lambda上(使用无服务器框架),并且仅部署在eu-west-1区域(爱尔兰)中。

该网站没有在线销售任何产品:这是一个信息网站,而不是电子商务。


我已经研究了这个问题几个小时,但是对于实现此目标所需的确切步骤,我有些迷失。

以下是一些我尚未找到答案的问题:

  • 是否需要将lambda部署到cn-north-1(中国北京),或者eu-west-1如果我获得ICP许可证,中国用户可以访问我的lambda吗?

无论部署区域在哪里,我似乎都需要ICP许可证,如AWS FAQ在 https://www.amazonaws.cn/en/about-aws/china/faqs/#new%20step上所述

问:如果要在AWS中国(北京)地区或AWS中国(宁夏)地区托管公共内容,是否需要提交ICP备案或ICP许可证?

是。根据中国法律法规,如果您使用任一AWS中国地区托管提供非商业互联网信息服务的网站,则必须通过相关政府机构对非商业网站(“ ICP备案”)进行备案程序。如果您使用任一AWS中国地区托管提供商业互联网信息服务的网站,则必须从相关政府机构获得商业网站的增值电信许可证(“ ICP许可证”)。在使用AWS中国地区之一托管公共内容之前,可能会要求您提供ICP记录或ICP许可证(如果适用)。

AWS中国(北京)地区由负责北京地区托管内容的Sinnet运营,而AWS中国(宁夏)地区由负责宁夏地区托管内容的NWCD运营。Sinnet和NWCD都为寻求ICP相关服务的客户提供免费支持,尽管客户需承担适用政府机构收取的任何费用。要了解有关存档程序的更多信息,请访问Sinnet(http://www.sinnet.com.cn/service.aspx?PartNodeId=35)和NWCD(http://nwcdcloud.cn/ICP.aspx)

至于实际获得许可证,这里有点话题了,但是我不明白第一个提供商的工作流程:

无论如何,该过程似乎需要大约4-6周的时间。因此,可能要花费更多的时间。


关于现在的技术细节,似乎中国地区(cn-north-1北京和cn-northwest-1宁夏)在AWS Lambda上表现得非常特殊。

  1. 它们仅支持REGIONAL端点
  2. 它们不支持本机无服务器environment变量

看到

此外,对网站本身也会产生技术影响:

  • Google服务被禁止或受到限制(Google Analytics(分析)(受限制),Google Tag Manager,Google Fonts(被禁止)),并且必须进行更改,转换为拥有的CDN等。

而且我可能已经错过了其他技术限制,因为那只是我在挖掘2小时内了解到的那些技术限制。

我还有其他步骤被忽略吗?(法规或技术)您是否对如何在中国启用AWS Lambda托管网站有任何建议或反馈?

amazon-web-services aws-lambda great-firewall-of-china serverless-framework aws-serverless

6
推荐指数
1
解决办法
160
查看次数

AWS Aurora Serverless - 通信链路故障

我在 python 代码中使用 MySQL Aurora Serverless 集群(启用了数据 API),但出现communications link failure异常。这通常发生在集群休眠一段时间后。

但是,一旦集群处于活动状态,我就不会出错。我必须每次发送 3-4 个请求才能正常工作。

异常详情:

最后一个成功发送到服务器的数据包是 0 毫秒前。驱动程序没有收到来自服务器的任何数据包。调用 ExecuteStatement 操作时发生错误 (BadRequestException):通信链接失败

我该如何解决这个问题?我正在使用标准的 boto3 库

mysql amazon-web-services amazon-aurora aws-serverless

6
推荐指数
2
解决办法
3915
查看次数

通过 AWS SAM 模板禁用 API Gateway 中一个方法资源端点的安全性

我正在使用 AWS Serverless 创建一个支持 Lambda 函数的 API 网关。

我定义了以下资源和方法:

/projects
   -> GET (should require API key)
   -> OPTIONS (should not, since it is used for CORS preflight)
Run Code Online (Sandbox Code Playgroud)

我遇到了 CORS 问题并需要 API 密钥。前端客户端代码403 Forbidden在启动预检 CORSOPTIONS请求时出错,因为API Key RequiredAWS 管理控制台中的 设置TrueOPTIONS方法。

我想专门为禁用的安全OPTIONS要求,但保持它的所有其他方法(GETPOST等)。这是我的资源定义(您可以看到我ApiKeyRequired: trueAuth对象中设置了默认值:

  MyApi:
    Type: 'AWS::Serverless::Api'
    Name: MyApi
    Properties:
      Auth:
        AddDefaultAuthorizerToCorsPreflight: true
        ApiKeyRequired: true # sets for all methods
      Cors:
        AllowCredentials: true
        AllowHeaders: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation swagger aws-api-gateway aws-serverless

6
推荐指数
2
解决办法
1285
查看次数

AWS step-function mapState iterate over large payloads

I have a state-machine consisting of a first pre-process task that generates an array as output, which is used by a subsequent map state to loop over. The output array of the first task has gotten too big and the state-machine throws the error States.DataLimitExceeded: The state/task 'arn:aws:lambda:XYZ' returned a result with a size exceeding the maximum number of characters service limit.

Here is an example of the state-machine yaml:

stateMachines:
  myStateMachine:
    name: "myStateMachine"
    definition:
      StartAt: preProcess
      States:
        preProcess: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda aws-step-functions aws-serverless

6
推荐指数
1
解决办法
3233
查看次数

异步 Lambda 函数:返回承诺或发送 responseURL 不会终止 CloudFormation 自定义资源调用

我有一个通过 CloudFormation 模板作为自定义资源调用的 lambda 函数。它创建/删除 AWS Connect 实例。API 调用工作正常,但我似乎无法终止自定义资源调用,因此最后一个 CF 块仍然是 CREATE_IN_PROGRESS。无论我从异步函数返回什么,它都不会成功终止 CF 执行。

我能够像在https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-custom-resources-lambda-lookup-amiids.html 中那样成功地使用非异步处理程序,但我需要多个 API 调用并等待完成,因此需要异步处理程序。

下面是最简单形式的代码,尽管我已经尝试了几乎所有的方法,包括使用回调和上下文(即exports.handler = async function(event, context, callback) {...}),这两者都应该是不需要异步处理程序。我试过使用 cfn-response 直接发送一个似乎被异步处理程序忽略的响应。我试过直接返回带有和不带有等待的承诺,尝试返回包含各种 responseStatus 和 responseData 的变量,但似乎没有任何效果。

Transform: 'AWS::Serverless-2016-10-31'
Parameters:
  IdentityManagementType:
    Description: The type of identity management for your Amazon Connect users.
    Type: String
    AllowedValues: ["SAML", "CONNECT_MANAGED", "EXISTING_DIRECTORY"]
    Default: "SAML"
  InboundCallsEnabled:
    Description: Whether your contact center handles incoming contacts.
    Type: String
    AllowedValues: [true, false]
    Default: true
  InstanceAlias:
    Description: The name for your instance.
    Type: …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous node.js aws-lambda aws-serverless

6
推荐指数
1
解决办法
439
查看次数

将 ASP.NET Core Web API 发布到 AWS 无服务器 Lambda 时出错:“policyArn”处的“AWSLambdaFullAccess”......成员的长度必须大于

一年多来,我已经能够通过选择“发布到 AWS Lambda...”使用 Visual Studio 2019 发布 ASP.NET Core Web API 应用程序,而不会发生任何事件(通过右键单击项目)。直到昨天。现在它始终无法发布并回滚。

失败的原因有以下两个。

  1. 检测到 1 个验证错误:“policyArn”处的值“AWSLambdaFullAccess”未能满足约束:成员的长度必须大于或等于 20(服务:AmazonIdentityManagement;状态代码:400;错误代码:ValidationError;请求 ID:...;代理:空)

  2. 未能创建以下资源:[AspNetCoreFunctionRole,Bucket]。用户请求的回滚。

上传进度图片

我已经查看了 AWSLambdaFullAccess 和 AWSLambda_FullAccess 以及其他东西,但没有模型可以遵循,甚至不知道它在任何意义上都指的是什么,我可以想象出一条富有成效的前进道路。它所指的“会员”究竟是什么?广泛的研究没有产生任何有用的结果。

我想成功发布我的 Web API。我可以调查什么才能继续?

amazon-web-services aws-lambda asp.net-core-webapi aws-serverless visual-studio-2019

6
推荐指数
2
解决办法
910
查看次数

在 AWS Cloudwatch 中查找 lambda 函数错误的日志?

我承认我还没有真正开始部署 AWS Lambda 函数,但本文是这样说的:

AWS CloudWatch 上的日志非常糟糕。我花了很长时间才找到简单应用程序的失败功能,想象一下大规模应用程序的恐怖。

在 AWS Cloudwatch 上过滤日志有什么特别困难的地方吗?例如,如果我们从 Servless 的节点模板部署 stock hello lambda,我想在日志中找到调用(错误或其他)是相当容易的?

如果有人有任何简单的最佳实践技巧,我们可以遵循这些技巧来使日志语句易于找到,那就太棒了!

amazon-web-services node.js amazon-cloudwatch serverless-framework aws-serverless

5
推荐指数
1
解决办法
1921
查看次数