问题标签 [aws-sam-cli]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - SAM模板环境变量使用map、list、关联数组?
我只在 SAM 模板中看到了具有单个值的示例:
我想做这样的事情,但似乎不起作用:
我想要一个类似于对象列表的环境变量。我可以存储一个分隔字符串并自己解析它,但我更希望它像一个对象/地图/列表,就像我准备好一个 YAML 文件一样。
amazon-web-services - 无权执行:dynamodb:Scan Lambda
我需要扫描 dynamodb 数据库,但我不断收到此错误:
“errorMessage”:“调用扫描操作时发生错误 (AccessDeniedException):用户:arn:aws:sts::747857903140:assumed-role/test_role/TestFunction 无权执行:dynamodb:Scan on resource:arn:aws :dynamodb:us-east-1:747857903140:table/HelpBot"
这是我的 Lambda 代码(index.py):
这是我的 SAM 模板(template.yml):
aws-api-gateway - 如何在没有明确的招摇定义的情况下在 SAM 中启用“ApiKeyRequired”属性?
在 cloudformation 中,AWS::ApiGateway::Method
具有布尔属性ApiKeyRequired
。我怎样才能在 SAM 中达到同样的效果?
我知道我们可以使用显式招摇配置启用。就像这样
不能在 SAM 中使用隐式 API 调用而不是显式传递AWS::Serverless::Api
?因为 swagger 代码对于较少的端点是可以的,并且一旦端点增加就会变得复杂。有没有APIkeyRequired
像我们这样的旗帜Cloudformation
?
感谢任何帮助谢谢
aws-api-gateway - SAM LOCAL - 事件中的 Cognito 用户名丢失 - 如何连接?
我正在使用 SAM LOCAL 和 start-api 使用邮递员测试我的 lambda 函数。我使用 Cognito 进行用户身份验证并将 cognito 令牌传递给 API 网关。在生产中,它工作正常。我需要来自 Cognito 的用户名(requestContext:authorizer:claims:cognito:username)。SAM LOCAL start-api 不提供这些。
任何帮助,将不胜感激。
amazon-web-services - PUT/POST/DELETE:403 错误禁止 + AWS SAM 的 CORS 错误
我想做一个简单的 HTTP 请求,但被这些错误阻止:
zone.js:2969 选项http://127.0.0.1:3000/project/new 403(禁止)
从源“ http://127.0.0.1:4200 ”访问位于“ http://127.0.0.1:3000/project/new ”的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我的 SAM 模板:
我的拉姆达:
PS:我的网址没问题,因为我用邮递员测试过
amazon-web-services - AWS SAM 模板 - 定义由 API Gateway 触发的 SQS 队列
尝试通过AWS SAM CLI
. 我正在使用我打包和部署的 SAM 简化模板。
我想要的只是创建一个 SQS 队列并隐式创建一个 API 网关,它将仅将有效负载放入队列中。
这是我到目前为止所尝试的(我定义 Queue + Api 的代码):
当我运行时一切都很好sam validate
,sam package
但是当我运行时它失败了sam deploy
。获取我使用的错误aws cloudformation describe-stack-events --stack-name myproject-stack
它清楚地表明了这一点Events it's not supported for AWS::SQS::Queue
。但这适用于 Lambdas(资源类型AWS::Serverless::Function
),这就是我尝试这种方式的原因。
但是,如果可能的话,我想避免在网关和队列之间使用 lambda。
是否可以直接为 SQS 队列定义 API 网关?如何?
谢谢!
docker - 从本地 Lambda 本地调用 Lambda
我试图在本地调用一个 lambda 函数,该函数调用另一个本地的 lambda 函数。
我在用sam local start-lambda -t notificationServiceTemplate.yml --docker-network lambda-local --host 0.0.0.0
然后我启动我的消费者 lambda,它调用工作人员 lambda,
aws lambda invoke --function-name ImportUsageConsumerLambda --endpoint-url http://127.0.0.1:3001
消费者 lambda 函数使用这些参数进行调用,
它不起作用,因为 lambda 容器无法访问容器外部的 localhost UnknownEndpoint: Inaccessible host: '0.0.0.0\'. This service may not be available in the 'us-west-2\' region.\n
,.
我知道使用端点0.0.0.0:3001
将不起作用,因为这是start-lambda
设置我的主机可访问的 lambda 端点的地方,而不是与 lambda docker 容器中的网络相同的网络。
在此问题和答案之后,我已设法连接到 dynamodb docker容器。
有没有一种我想念的简单方法来做到这一点?就像我可以从 lambda 容器内部调用的 lambda 容器的主机名一样,即options.endpoint = "http://lambda:3001/";
?
amazon-web-services - 在本地运行 AWS SAM CLI 时启用 CORS
每当我尝试通过浏览器通过 POST 访问无服务器 lambda 函数时,我都会收到错误消息
对预检请求的响应未通过访问控制检查:请求的资源上不存在 >'Access-Control-Allow-Origin' 标头。
当它/GET
工作正常时,我读过它是因为它没有发送飞行前请求。当我把它改成POST
这个时,它就失败了。
我正在运行的命令:
sam local start-api
我的 template.yaml 是:
如何在这些端点上启用 CORS?
amazon-web-services - 适用于 SSM 获取参数的 AWS SAM 托管策略
是否有任何类似于Lambda 函数权限的DynamoDBReadPolicy
托管策略?ssm:GetParameter*
我正在使用 aws-sam-cli 并尝试遵循this,但是当我尝试在 using 时获取参数时sam local start-api
,出现以下错误:
InvalidAction: The action or operation requested is invalid. Verify that the action is typed correctly.
这是我尝试获取参数的片段:
相关的模板部分如下。谢谢!
lambda - sam local start-api 无法导入模块
我只是创建了一个包含内容的 lambda 函数(文件名为 check.js):
以及template.yaml的内容
之后我使用命令:sam local start-api
我收到错误:
我记得之前还好。但自从我重新安装 Docker 后就出现了问题。请帮我解决这个问题。