是否有任何无服务器技术允许构建无服务器的websocket服务器?
我知道长时间运行连接的本质是它们是有状态的,但如果唯一的状态是传输层的连接本身那么似乎可能有一个无服务器的产品将其抽象出来,所以你只处理应用层.是否有云提供商(AWS,Azure等)允许这样做?我无法看到AWS Lambda或Azure Functions实现此目的的方法.
有人有任何想法吗?只是检查.
谢谢
我将在CloudFormation模板中描述现有的AWS Lambda函数,然后面对下一个问题。在Lambda中,我们配置了一些测试事件,这些事件可以帮助我们验证一些用例(我的意思是下面的屏幕截图中的功能)。
但是我看不到将这些测试事件添加到CloudFormation模板的任何功能。AWS文档对此无济于事。这完全有可能吗,或者有任何变通办法如何导出和导入Lambda函数测试事件?
amazon-web-services aws-cloudformation aws-lambda serverless
我正在尝试从云功能中将文件上传到谷歌云存储.但是,我无法将云存储库导入到我的函数中.
可以通过这种方式从云功能中使用云存储吗?
from google.cloud import storage
def upload_blob(bucket_name, blob_text, destination_blob_name):
"""Uploads a file to the bucket."""
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(destination_blob_name)
blob.upload_from_string(blob_text)
print('File {} uploaded to {}.'.format(
source_file_name,
destination_blob_name))
def log_data(request):
request_json = request.get_json()
BUCKET_NAME = 'my-bucket'
BLOB_NAME = 'test-blob'
BLOB_STR = '{"blob": "some json"}'
upload_blob(BUCKET_NAME, BLOB_STR, BLOB_NAME)
return f'Success!'
Run Code Online (Sandbox Code Playgroud)
Deployment failure:
Function load error: Code in file main.py can't be loaded.
File "/user_code/main.py", line 1, in <module>
from google.cloud import storage
ImportError: cannot …Run Code Online (Sandbox Code Playgroud) python google-cloud-storage google-cloud-platform google-cloud-functions serverless
我正在尝试通过 CDK 提供 lambda 并发性。我有几个 CfnFunctions,我需要配置它们。
只能在别名上进行配置。因此,当我将 autoPublishAlias 添加到 CfnFunction 时,APIG 触发器不起作用。
如何通过 CDK 实现(配置)供应?
谢谢,维诺德。
我最近添加了很酷的 lambda 功能配置并发。
经过几次成功部署后,我现在面临这个问题
无服务器错误 -------------------------------
ServerlessError:发生错误:GraphqlPrivateProvConcLambdaAlias - 无法应用预置并发配置。原因:FUNCTION_ERROR_INIT_FAILURE。在 C:\Users\theod\AppData\Roaming\npm\node_modules\serverless\lib\plugins\aws\lib\monitorStack.js:125:33 来自上一个事件:在 AwsDeploy.monitorStack (C:\Users\theod\AppData \Roaming\npm\node_modules\serverless\lib\plugins\aws\lib\monitorStack.js:28:12) 在 C:\Users\theod\AppData\Roaming\npm\node_modules\serverless\lib\plugins\aws\lib \updateStack.js:107:28 来自之前的活动:在 AwsDeploy.update
这是我的示例 serverless.yml 文件
service: backend-api
parameters:
region: ap-southeast-2
path: &path /
provider:
name: aws
runtime: nodejs12.x
stage: ${env:STAGE, 'staging'}
region: ap-southeast-2
versionFunctions: true
plugins:
- serverless-webpack
- serverless-pseudo-parameters
- serverless-prune-plugin
# - serverless-offline-scheduler
- serverless-offline
functions:
# GRAPHQL APIs
graphqlPrivate:
handler: src/graphql/private/index.handler
memorySize: 256
timeout: 30
name: ${self:service}-gqlPrivate-${self:provider.stage}
vpc: ${file(./serverless/vpc.yml)}
events:
- http:
path: /graphql/private
method: ANY
cors: true …Run Code Online (Sandbox Code Playgroud) amazon-web-services node.js aws-lambda serverless-framework serverless
我已经开始将 Prefect 用于各种项目,现在我需要决定 GCP 上哪种部署策略最有效。最好我想无服务器工作。比较 Cloud Run、Cloud Functions 和 App Engine,我倾向于选择后者,因为它没有超时限制,而其他两个有 9 个响应。15分钟。
我有兴趣了解人们如何无服务器部署 Prefect 流,以便调度/触发流以进行批处理,而代理在不使用时会自动缩小。
或者,更经典的方法是在Compute Engine上部署 Prefect并通过 Cloud Scheduler 进行调度。但我觉得这有点过时,并没有充分体现 Prefect 的功能和未来发展的灵活性。
我有一个无服务器服务,在 serverless.yml 文件中使用以下配置运行:
service: tableau-export-rest
custom:
dev:
tableauBookmarksBucket: tmt-${self:provider.stage}-tableau-bookmarks
qa:
tableauBookmarksBucket: tmt-${self:provider.stage}-tableau-bookmarks
prod:
tableauBookmarksBucket: tmt-${self:provider.stage}-tableau-bookmarks
provider:
name: aws
runtime: nodejs12.x
region: eu-west-1
stage: ${opt:stage, 'dev'}
timeout: 900
memorySize: 3008
environment:
TABLEAU_BOOKMARKS_BUCKET: ${self:custom.${self:provider.stage}.tableauBookmarksBucket}
iamRoleStatements:
- Effect: Allow
Action:
- s3:PutObject
- s3:GetObject
- s3:ListBucket
Resource: "arn:aws:s3:::${self:custom.${self:provider.stage}.tableauBookmarksBucket}/*"
- Effect: Allow
Action:
- lambda:InvokeFunction
Resource: "arn:aws:lambda:*"
functions:
saveBookmark:
handler: index.saveBookmark
timeout: 30
events:
- http:
path: /save-bookmark
method: post
cors:
origin: '*'
Run Code Online (Sandbox Code Playgroud)
该saveBookmark函数看起来像这样:
const params = {
Bucket: process.env.TABLEAU_BOOKMARKS_BUCKET,
Key: 'ABC123' …Run Code Online (Sandbox Code Playgroud) 我有一个使用私有Git(在Github上)repo上的Python无服务器项目.
Requirements.txt文件如下所示:
itsdangerous==0.24
boto3>=1.7
git+ssh://git@github.com/company/repo.git#egg=my_alias
Run Code Online (Sandbox Code Playgroud)
项目的配置主要是这样的
plugins:
- serverless-python-requirements
- serverless-wsgi
custom:
wsgi:
app: app.app
packRequirements: false
pythonRequirements:
dockerizePip: true
dockerSsh: true
Run Code Online (Sandbox Code Playgroud)
当我使用此命令进行部署时:
sls deploy --aws-profile my_id --stage dev --region eu-west-1
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Command "git clone -q ssh://git@github.com/company/repo.git /tmp/pip-install-a0_8bh5a/my_alias" failed with error code 128 in None
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我怀疑我为Github访问配置SSH密钥的方式或无服务器包的配置.
我刚开始使用Google Cloud Functions完成整个无服务器的事情,所有的例子基本上都是"Helloworld".
package function
import (
"net/http"
)
func F(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, World!\n"))
}
Run Code Online (Sandbox Code Playgroud)
生产就绪功能是什么样的?
go google-cloud-platform google-cloud-functions faas serverless
使用 apollo-server-lambda 在 lambda 无服务器中设置 cookie
我正在从 apollo-server 迁移到无服务器版本。有没有办法可以访问响应对象或其他方式来设置 cookie?
context: ({ event, context }) => ({
headers: event.headers,
functionName: context.functionName,
event,
context,
}),
Run Code Online (Sandbox Code Playgroud)
我期望在上下文中可以像在 apollo-server 中一样访问 res 对象。
serverless ×10
aws-lambda ×3
python ×2
amazon-s3 ×1
aws-cdk ×1
azure ×1
faas ×1
go ×1
graphql ×1
javascript ×1
lambda ×1
node.js ×1
pip ×1
prefect ×1
websocket ×1