根据无服务器应用程序模型中的文档,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
在 SAM(亚马逊的无服务器应用程序模型)中创建代理资源的要求显然很简单。事实上如此简单以至于亚马逊的文档似乎将其作为练习留给读者!
我想创建一个 AWS API Gateway 全能端点来将所有内容代理到另一个 HTTP 服务。
在 AWS 控制台中,我尝试构建的配置如下所示:
我在此处看到了 Christian Johansen 的这篇优秀文章和他的相关 Stack Overflow 问题,了解如何在 CloudFormation 中做同样的事情。我想我可以只在 SAM 中使用该代码,但是,SAM 具有其隐式和显式 API,因此如果“正确的方法”是引用隐式资源,我想避免创建显式资源。
有谁知道如何做到这一点?
amazon-web-services aws-serverless aws-sam serverless-application-model
我打开这个问题是因为似乎没有关于此的文档,所以我想在反复试验中浪费大量时间后提供答案。
作为背景,无服务器框架 [允许从 AWS SSM Parameter Store 加载纯文本和 SecureString 值]。1
执行无服务器部署时,访问和加载这些 SSM Parameter Store 值需要什么权限?
amazon-iam aws-lambda serverless-framework serverless aws-serverless
我试图了解我需要经历的各个步骤和要求,以便使我们的网站在法规方面(长防火墙)在中国可用,也在技术方面(技术限制和执行更改)从中国提供https://unly.org/
目前似乎不允许这样做:http : //www.chinafirewalltest.com/? siteurl= https%3A%2F%2Funly.org%2F
我不需要也不想拥有.ch网站,我只想通过https://unly.org/将我的网站提供中文版本。此外,该网站目前托管在AWS Lambda上(使用无服务器框架),并且仅部署在eu-west-1区域(爱尔兰)中。
该网站没有在线销售任何产品:这是一个信息网站,而不是电子商务。
我已经研究了这个问题几个小时,但是对于实现此目标所需的确切步骤,我有些迷失。
以下是一些我尚未找到答案的问题:
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上表现得非常特殊。
REGIONAL端点environment变量看到
此外,对网站本身也会产生技术影响:
而且我可能已经错过了其他技术限制,因为那只是我在挖掘2小时内了解到的那些技术限制。
我还有其他步骤被忽略吗?(法规或技术)您是否对如何在中国启用AWS Lambda托管网站有任何建议或反馈?
amazon-web-services aws-lambda great-firewall-of-china serverless-framework aws-serverless
我在 python 代码中使用 MySQL Aurora Serverless 集群(启用了数据 API),但出现communications link failure异常。这通常发生在集群休眠一段时间后。
但是,一旦集群处于活动状态,我就不会出错。我必须每次发送 3-4 个请求才能正常工作。
异常详情:
最后一个成功发送到服务器的数据包是 0 毫秒前。驱动程序没有收到来自服务器的任何数据包。调用 ExecuteStatement 操作时发生错误 (BadRequestException):通信链接失败
我该如何解决这个问题?我正在使用标准的 boto3 库
我正在使用 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 管理控制台中的 设置True为OPTIONS方法。
我想专门为禁用的安全OPTIONS要求,但保持它的所有其他方法(GET,POST等)。这是我的资源定义(您可以看到我ApiKeyRequired: true在Auth对象中设置了默认值:
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
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
我有一个通过 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) 一年多来,我已经能够通过选择“发布到 AWS Lambda...”使用 Visual Studio 2019 发布 ASP.NET Core Web API 应用程序,而不会发生任何事件(通过右键单击项目)。直到昨天。现在它始终无法发布并回滚。
失败的原因有以下两个。
检测到 1 个验证错误:“policyArn”处的值“AWSLambdaFullAccess”未能满足约束:成员的长度必须大于或等于 20(服务:AmazonIdentityManagement;状态代码:400;错误代码:ValidationError;请求 ID:...;代理:空)
未能创建以下资源:[AspNetCoreFunctionRole,Bucket]。用户请求的回滚。
我已经查看了 AWSLambdaFullAccess 和 AWSLambda_FullAccess 以及其他东西,但没有模型可以遵循,甚至不知道它在任何意义上都指的是什么,我可以想象出一条富有成效的前进道路。它所指的“会员”究竟是什么?广泛的研究没有产生任何有用的结果。
我想成功发布我的 Web API。我可以调查什么才能继续?
amazon-web-services aws-lambda asp.net-core-webapi aws-serverless visual-studio-2019
我承认我还没有真正开始部署 AWS Lambda 函数,但本文是这样说的:
AWS CloudWatch 上的日志非常糟糕。我花了很长时间才找到简单应用程序的失败功能,想象一下大规模应用程序的恐怖。
在 AWS Cloudwatch 上过滤日志有什么特别困难的地方吗?例如,如果我们从 Servless 的节点模板部署 stock hello lambda,我想在日志中找到调用(错误或其他)是相当容易的?
如果有人有任何简单的最佳实践技巧,我们可以遵循这些技巧来使日志语句易于找到,那就太棒了!
amazon-web-services node.js amazon-cloudwatch serverless-framework aws-serverless
aws-serverless ×10
aws-lambda ×5
node.js ×2
serverless-application-model ×2
amazon-iam ×1
asynchronous ×1
aws-sam ×1
javascript ×1
mysql ×1
serverless ×1
swagger ×1