AWS CLI版本:
aws --version
aws-cli/1.11.21 Python/2.7.12 Darwin/15.3.0 botocore/1.4.78
Run Code Online (Sandbox Code Playgroud)
尝试创建Lambda函数并获取错误:
An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: The role defined for the function cannot be assumed by Lambda.
Run Code Online (Sandbox Code Playgroud)
角色创建为:
aws iam create-role --role-name microrole --assume-role-policy-document file://./trust.json
Run Code Online (Sandbox Code Playgroud)
trust.json 是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
政策附件如下:
aws iam put-role-policy --policy-document file://./policy.json --role-name microrole --policy-name micropolicy
Run Code Online (Sandbox Code Playgroud)
policy.json 是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup", …Run Code Online (Sandbox Code Playgroud) security amazon-web-services aws-cli aws-lambda serverless-architecture
使用AWS CLI
aws --version
aws-cli/1.11.21 Python/2.7.12 Darwin/15.3.0 botocore/1.4.78
Run Code Online (Sandbox Code Playgroud)
按照https://github.com/arun-gupta/serverless/tree/master/aws/microservice#post-method中的说明为API网关创建POST方法.可以使用test-invoke-methodAWS Console 成功调用此方法.
使用AWS CLI创建GET方法https://github.com/arun-gupta/serverless/tree/master/aws/microservice#get-method.使用test-invoke-method和AWS Console 调用此方法会出现以下错误:
{
"status": 500,
"body": "{\"message\": \"Internal server error\"}",
"log": "Execution log for request test-request\nThu Dec 29 00:58:56 UTC 2016 : Starting execution for request: test-invoke-request\nThu Dec 29 00:58:56 UTC 2016 : HTTP Method: GET, Resource Path: /books\nThu Dec 29 00:58:56 UTC 2016 : Method request path: {}\nThu Dec 29 00:58:56 UTC 2016 : Method request query string: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Amazon Kinesis作为平台的中央事件日志来实现事件驱动的体系结构.这个想法与Nordstrom与Hello-Retail项目提出的想法非常相似.
我之前和Apache Kafka做过类似的事情,但是Kinesis似乎是Kafka的一个经济有效的替代品,我决定试一试.但是,我面临着与事件持久性和重放相关的一些挑战.我有两个问题:
我目前正在使用lambda函数(Firehose也是一个选项)将所有事件持久保存到Amazon S3.然后,可以从存储中读取过去的事件,然后开始收听来自流的新事件.但我对这个解决方案不满意.消费者无法使用Kinesis的检查点(Kafka的消费者抵消).另外,Java的KCL还不支持AFTER_SEQUENCE_NUMBER,这在这种实现中很有用.
amazon-web-services cqrs event-sourcing amazon-kinesis serverless-architecture
我开始使用AWS Lambda和API网关进行新的无服务器项目。
什么是组织我的项目而不被锁定在诸如无服务器框架或圣杯这样的框架中的最佳方法?
到目前为止,这是我正在使用的内容。
你们中有人建议组织我的项目的更好方法吗?每个微服务是否获得单独的git repo?我是否缺少其他重要文件夹?
aws-lambda aws-api-gateway serverless-framework serverless-architecture
当您只有一个时,您可以使用 Serverless Framework 和 Serverless Offline Plugin 轻松调试您的无服务器应用程序,但是当您有多个 API 网关/服务时,您如何处理这种情况?
我是否应该serverless offline为每个服务运行,并在每个服务中配置不同的端口.yml?
并在环境变量中对该端口进行硬编码,以便我可以访问该端口(如果process.env.offline为真)?
serverless-framework serverless-architecture serverless-offline
我目前正在使用无服务器设计一个简单的无服务器 Web 应用程序。
我目前的预期堆栈是;
我遵循了一些使用无服务器框架构建无服务器 API、Lambda 和 DynamoDB 的教程,并且我已经构建了我的单页应用程序,但是现在它们是 2 个独立的实体。
我现在要做的是将静态站点(nodejs)与我的 API、Lambda 和 DynamoDB 放在同一个项目中,并使用无服务器框架来控制部署,但是我正在努力寻找指导;
任何人都可以提供有关它应该如何工作的任何见解,或者向我指出一些好的博客/资源的方向?
亲切的问候,约翰
我正在使用API Gateway和Lambda(无服务器框架)构建无服务器应用程序,并试图找到一种方法来提供应用程序API的多个版本。
这是我能想到的方式。
无服务器
handler: list.handler
events:
- http:
path: {ver}/list
method: get
cors: true
authorizer: aws_iam
Run Code Online (Sandbox Code Playgroud)
list.js
export async function handler(event, context, callback) {
const ver = event.pathParameters.ver;
if (ver >= '1.0') {
return fooUtil.getNo(ver);
} else {
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
fooUtil.js
export function getNo(ver) {
if (ver >= 1.3) {
return 3;
} else {
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我需要以这种方式将“ ver”参数传递给所有函数。
有什么方法可以更容易(并且可以测试)从如下所示的请求中获取版本号?
fooUtil.js
export function getNo() {
if (session.getValue('ver') >= 1.3) {
}
}
Run Code Online (Sandbox Code Playgroud)
我不希望划分存储库或git分支来管理多个版本。
amazon-web-services aws-lambda aws-api-gateway serverless-framework serverless-architecture
我想在 Eventbridge 中部署一个由所有事件触发的 AWS 事件规则,没有任何过滤。
我尝试了以下模式但没有运气。
{
source: ["*"]
}
Run Code Online (Sandbox Code Playgroud)
根据文档,您不能将模式留空。此外,模式中未包含的任何字段都是通配符,这意味着它们可以是任何值。
我读过一些文章说 Eventbridge 可以取代 SNS 和 SQS 等服务,但没有这些更精细的控制,我看不到这种情况发生。
谢谢
amazon-web-services serverless-architecture serverless amazon-cloudwatch-events
我正在使用无服务器模板并且一切正常,直到突然我的所有部署都开始忽略.env文件。
我搜索了文档,它说如果我想使用 .env 文件中的环境变量,我现在必须添加useDotenv: true到我的serverless.yml文件中。所以我做了:
app: xxx
org: xxx
useDotenv: true
Run Code Online (Sandbox Code Playgroud)
没有效果。
我的serverless.yml文件之前只包含 app 和 org 变量。
我需要在哪里添加seDotenv: true以使其读取我的.env变量?
我正在尝试部署我的 NextJs 应用程序。过去几天我也遇到了同样的两个错误:
1: // 稍后会出错
2: 错误:未构建无服务器页面。了解更多: https: //err.sh/vercel/vercel/now-next-no-serverless-pages-built
我不知道如何修复它们。如果有人提供帮助,我将不胜感激
这是我的 package.json 文件:
{
"name": "my-dev-portfolio",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "next",
"bulid": "next build",
"start": "next start",
"now-build": "next build"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.1.1",
"@fortawesome/free-brands-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.2.0",
"next": "^12.2.0",
"react-dom": "^18.2.0",
"typewriter-effect": "^2.19.0"
}
}
Run Code Online (Sandbox Code Playgroud)
next.config.json 文件:
module.exports = {
target: "serverless"
}
Run Code Online (Sandbox Code Playgroud)
now.json 文件: …
aws-lambda ×4
serverless ×3
aws-cli ×2
cqrs ×1
javascript ×1
next.js ×1
reactjs ×1
security ×1
vercel ×1