我正在尝试在 YAML 中为 DynamoDB 添加事件流,DynamoDB 表是一个根据其部署到的环境而变化的变量,我用来Fn::GetAtt确定TABLE_NAME,但它给了我一个例外。
Fn::GetAtt?例外:
missed comma between flow collection entries in "erverless.yml" at line 60,
column28:Fn::GetAtt: [ ${self:custom.TABLE_NAME ...
Run Code Online (Sandbox Code Playgroud)
代码:
custom:
TABLE_NAME : mix of account + env + name
events:
- stream:
type: dynamodb
arn:
Fn::GetAtt: [ ${self:custom.TABLE_NAME}, StreamArn ]
Run Code Online (Sandbox Code Playgroud) yaml serverless-framework amazon-dynamodb-streams serverless
我们计划使用基于AWS CDK的无服务器堆栈工具包部署无服务器后端。
我知道某些 AWS 资源无法更新。例如,无法在现有 dynamodb 表上创建新的排序键。我认为此更新是使用 AWS CDK 自动实现的:要更新的表被销毁,然后使用新架构创建。这可能会对生产中的现有应用程序造成巨大的问题......
我们如何确定哪种更新是安全的,哪种更新是关键的?
如果您使用 AWS CDK,如何管理基础设施更新?
我有一个使用 OpenFaaS 的应用程序。
特别是,我使用faasd,因为该函数将在处理能力较差的设备上运行。我有一个私人注册表,上面有一个“X”函数的图像。我想从 faasd 中提取此映像来部署并执行它,但我遇到了一个问题:当我尝试执行该操作时,我似乎没有经过身份验证,但我正确地传递了registryAuth令牌。
这里有一个我正在做的示例(遵循此https://ericstoekl.github.io/faas/operations/managing-images/#deploy-functions-with-private-registries-credentials)
邮政
<ip_address>:8080/system/functions
Run Code Online (Sandbox Code Playgroud)
标题:
{
"Authorization": "mytoken"
}
Run Code Online (Sandbox Code Playgroud)
身体:
{
"service": "functionName",
"image": "<registry_ip_address>/functions/functionName:<version>",
"envProcess": "/.../myprocess",
"registryAuth": <base64 token obtained from 'user:password'>,
"secrets": [
"mysecret"
]
}
Run Code Online (Sandbox Code Playgroud)
我确认参数全部正确,但收到此错误:
“无法拉取映像 <registry_ip_address>/functions/functionName:: 无法拉取:无法解析引用“<registry_ip_address>/functions/functionName:”:没有为令牌身份验证质询指定范围”
注册表运行良好,因为如果我尝试使用 docker 以经典方式下载映像,我就能够拉取映像。
先感谢您!
我使用无服务器来配置通过 AWS SQS 接收事件的 Lambda 函数。现在我想添加一个死信队列。这就是我到目前为止所拥有的:
service: myservice
plugins:
- serverless-plugin-lambda-dead-letter
provider:
name: aws
runtime: go1.x
region: eu-central-1
iamRoleStatements:
- Effect: "Allow"
Action:
- "sqs:*"
Resource:
- "*"
package:
exclude:
- ./**
include:
- ./bin/**
functions:
main:
handler: bin/send-mail
deadLetter:
sqs:
queueName: send-mail-dlx
messageRetentionPeriod: 200000
events:
- sqs: arn:aws:sqs:eu-central-1:123456789:send-mail
Run Code Online (Sandbox Code Playgroud)
两个 SQS 队列均已成功创建,但死信队列send-mail-dlx未分配为 的死信队列send-mail。如何在我的无服务器配置中正确分配它?
service: serverless-demo-app
provider:
name: aws
runtime: nodejs10.x
functions:
sample1:
handler: sample1/handler
events:
- http:
path: sample1
method: get
sample2:
handler: sample2/handler
events:
- http:
path: sample2
method: get
Run Code Online (Sandbox Code Playgroud)
当我从sample1调用sample2时,我需要它的全名,例如:serverless-demo-app-dev-sample2
那么,如何获取function1内的服务名称、函数名称和环境名称呢?
首先,我只想说我对 AWS 总体来说还是个新手(1-2 周)。所以我可能从一开始就认为不正确。
我正在开发一个应用程序,我想在 JSX 中单击按钮并触发 Lambda 函数,该函数从 dynamodb 表获取数据并将其显示在 UI 中。
我正在使用 aws cdk 将基础设施编写为代码。我该怎么面对这个?您有我可以遵循的指南吗?
我有 AWS AppSync API 和 DynamoDb,我可以使用DynamoDb Resolvers创建并从中获取数据。(VTL模板)
我不确定如何使用 VTL 模板进行用户输入验证。我想确保联系人的“firstName”长度在 2 - 30 个字符之间。
如何使用 VTL 实现这一目标?有没有办法在 GraphQL 模式本身内进行这种验证?
这是我的 GraphQL 架构,
schema {
query: Query
mutation: Mutation
}
type Mutation {
createContact(contact: ContactInput!): Contact!
}
type Contact {
contactId: ID!
firstName: String!
lastName: String!
email: String!
}
input ContactInput {
firstName: String!
lastName: String!
email: String!
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将记录插入到我的 aws 时间流表中。它的获取导致了访问被拒绝错误。
这是serverless.yml上的权限
- Effect: Allow
Action:
- timestream:*
Resource:
- arn:aws:timestream:${self:provider.region}:*:database/*
- arn:aws:timestream:${self:provider.region}:*:database/*/*/*
Run Code Online (Sandbox Code Playgroud)
我是 lambda 的角色详细信息。
{
"Action": [
"timestream:*"
],
"Resource": [
"arn:aws:timestream:us-east-1:*:database/*",
"arn:aws:timestream:us-east-1:*:database/*/*/*"
],
"Effect": "Allow"
},
Run Code Online (Sandbox Code Playgroud)
记录样本
{
"DatabaseName": "developmentreportsdb",
"TableName": "developmenteventstable",
"Records": [
{
"Dimensions": [
{
"Name": "accountId",
"Value": "6921e43e-266c-4adf-8a69-d90bd8743d1b"
},
{
"Name": "userId",
"Value": "6921e43e-266c-4adf-8a69-d90bd8743d1b"
}
],
"MeasureName": "ACCOUNT.NEW",
"MeasureValue": "6921e43e-266c-4adf-8a69-d90bd8743d1b",
"MeasureValueType": "VARCHAR",
"Time": "1644234263813",
"TimeUnit": "MILLISECONDS",
"Version": 1
}
]
}
Run Code Online (Sandbox Code Playgroud)
错误详情:
Error writing records: AccessDeniedException: User: arn:aws:sts::344128203239:assumed-role/development-us-east-1-lambdaRole/development-worker is not authorized …Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-cloudformation serverless amazon-timestream
问题
\n我有一个项目是独立的aws 无服务器后端,它利用 lambda 层概念来共享node_modules和其他custom dependencies。
在我的案例中,自定义依赖项的用例之一是将所有常见代码(例如HTTP_STATUS_CODE枚举)以及Api responses util状态代码和续集模型和服务放在一个文件夹中,稍后将其复制到node_modules并将其托管到s3 bucket
文件夹结构
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 customDependencies\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 nodejs\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sequelizeORM\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 config\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 migrations\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 models\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 seeders\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 services\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 node_modules\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 functions\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 func1\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 func2\n \xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 func3\n \n\nRun Code Online (Sandbox Code Playgroud)\n在将函数部署到 AWS 提供商之前,我将所有文件从customDependenciesto复制node_modules并将其推node_modules送到 S3 并创建一个所有 lambda 函数引用的层资源node_modules
使用通用代码的函数示例
\n//func1\n\nimport {HTTP_STATUS_CODE, stringifyResponse} from …Run Code Online (Sandbox Code Playgroud) azure amazon-web-services webpack serverless-framework serverless
我从 cloudflare worker 开始,并使用推荐的路由框架 HonoJS。现在,实现 cors 功能的记录方法在我的开发机器(npm run dev)上对我不起作用。我没有在生产中测试它,因为我需要它在开发环境中工作。
问题是:OPTION 请求返回 404。
如何设置全局 CORS 配置?
我的代码目前是这样的:
import { Hono } from 'hono'
import { cors } from 'hono/cors'
import { basicAuth } from 'hono/basic-auth'
import { default as register } from './register.js'
const app = new Hono()
app.use('*', cors())
const user = new Hono()
// also tried: user.use('/*', cors())
user.post('/register', register)
// Register route groups
app.route('/user', user)
export default app
Run Code Online (Sandbox Code Playgroud)
还尝试了以下 cors 调用:
cors({
origin: 'http://localhost:5173',
allowHeaders: ['X-Custom-Header', 'Upgrade-Insecure-Requests'],
allowMethods: …Run Code Online (Sandbox Code Playgroud) serverless ×10
aws-cdk ×2
amazon-sqs ×1
aws-appsync ×1
aws-lambda ×1
azure ×1
containerd ×1
docker ×1
faas ×1
graphql ×1
hono ×1
node.js ×1
openfaas ×1
updates ×1
webpack ×1
yaml ×1