问题标签 [aws-sam]

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.

0 投票
2 回答
16994 浏览

amazon-web-services - AWS SAM - 无法创建变更集:Waiter ChangeSetCreateComplete failed

AWS SAM 使用 aws-sam-cli 将代码库部署到 AWS 云,但它让我出错。

Failed to create the changeset: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state Status: FAILED. Reason: Requires capabilities : [CAPABILITY_IAM]

0 投票
2 回答
942 浏览

amazon-web-services - 动态 AWS Sam 计划事件输入参数

我们正在通过 SAM 自动化 lambda 以在Schedule Event. 我们使用 YAML,但我们无法弄清楚如何使用!Sub来使 Input 成为动态的。

如果您阅读sam 文档,它会说Input需要JSON formatted string

以下代码适用于我们:

但是我们需要将动态参数插入到Input类似的东西中:

我们尝试以多种方式执行此操作,使用 !Sub 但部署总是失败,说它需要是有效的 JSON。

使这个 JSON 字符串使用变量的正确方法是什么?

谢谢,马克

0 投票
0 回答
334 浏览

aws-lambda - AWS SAM cloudformation:API 网关无法调用 lambda (AWS::Serverless::Function)

我创建了一个 template.yaml 文件来声明一个由 api 网关调用的简单 lambda 函数。当我尝试从 api 网关 url 调用函数时,请求失败,{"message": "Internal server error"}并且在 cloudwatch api 网关日志中我看到错误消息Invalid permissions on Lambda function

这是我的模板.yaml:

SAM 文档说,上面的语法能够隐式创建必要的权限和 API 声明

我还遵循了AWS 网站上的一个示例。

如果我在 template.yaml 文件中添加一个lambda:InvokeFunction权限,那么调用就可以工作,但是通过阅读文档,这样做应该是不必要的。

可能出了什么问题?

0 投票
1 回答
746 浏览

amazon-web-services - 如何在我的模板中为 API 事件添加“/”?

这是我的 lambda 资源:

testMethod和“/”对应swagger文档中的路径。但似乎 cloudformation 让我使用“/”作为 api 事件:

这是我的 API 网关资源:

0 投票
2 回答
1522 浏览

amazon-web-services - 如何获取动态创建的 lambda 角色的名称?

我喜欢在部署模板时如何创建角色 + 内联策略:

资源:

现在我可以引用动态创建的角色并在 SAM 模板中添加一个 Output: for it 吗?

0 投票
1 回答
174 浏览

aws-sam - 向 Serverless.Template 文件添加参数

我正在使用 Jenkins Pipeline 发布 Visual Studio AWS Serverless .Net Core 应用程序。

有人可以告诉我是否可以向 serverless.template 文件添加参数?然后,我将能够使用 aws cli 填充这些参数,作为 Jenkins 构建过程的一部分。

例如,如果我想发布到具有与生产环境不同的 VpcConfig 值的暂存环境;

0 投票
0 回答
299 浏览

aws-sam-cli - 如何从本地 AWS SAM 读取 s3 存储桶

我有一个 lambda,我希望使用 AWS SAM local 在本地进行测试。lambda 需要从云上的 s3 存储桶中读取。如何允许在 AWS SAM 本地环境中发生这种情况?

谢谢

安格斯

0 投票
1 回答
5226 浏览

amazon-web-services - sam.yml 文件中的多个 Lambda 函数

仍在等待 AWS 对此的实际支持: https ://github.com/aws-samples/aws-serverless-samfarm/issues/5

这假设如何工作?

我的用例是我有一个 API Gateway 前端 lambda,它将事件写入 SNS 主题。我有另一个订阅该主题的 lambda。

这些 lambda 可以在单独的仓库中吗?是的。首先是使用 pub/sub 模式来分离这两个应用程序的目的的一部分吗?是的。

但这是一个简单的应用程序。该主题不会与其他功能共享,并且整个内容是自包含的。理想情况下,它们应该全部部署在同一个模板中。

我可以轻松地将我想要的所有功能添加到我的 SAM 模板中,但是如何部署它们呢?他们每个人都应该有不同的 CodeURI 吗?这意味着我需要编写脚本复制并将每个 lambdas 依赖项安装到不同的文件夹中,然后将模板中每个 lambda 的 codeuri 指向不同的文件夹。

没有更好的支持吗?

0 投票
1 回答
1006 浏览

python - 无法使用 pip Python 2.7 安装 aws-sam-cli

版本

Python:2.7.10

点子18.0

aws-cli:1.16.19

pip 18.0 来自 /Library/Python/2.7/site-packages/pip (python 2.7),aws-cli 版本基于 aws-cli/1.16.19 Python/2.7.10 Darwin/17.7.0 botocore/1.12.9

错误

在下面遇到以下错误Step 5

采取的步骤

使用这个参考我执行了以下命令:

  1. 安装pip

    /li>
  2. ADD USER_BASE_PATHPATH

    /li>
  3. 安装awscli

    由于失败而不得不使用该user标志:pip install awscli

    考虑使用该--user选项或检查权限。

  4. 安装aws-sam-cli

    /li>
0 投票
0 回答
296 浏览

aws-lambda - 如何为 lambda 版本 $LATEST 和实时 AutoPublishAlias 配置不同的 APIGateway 端点

我将SAM与 AutoPublishAlias safe lambda deployments一起使用。但是,在 Pretraffic 挂钩中,我想通过 AWS API Gateway 端点调用最新的 [未验证] lambda 版本来运行一些初始验证测试,该端点不同于指向稳定 lambda 版本的端点。

在我的例子中,通过绕过 pre-traffic 钩子中的 APIGateway 直接调用 lambda 函数是非常具有挑战性的,因为 lambda 函数包括白名单和其他需要由API Gateway 代理集成设置的值的逻辑。理想情况下,我希望有 2 个 API 网关端点始终指向 lambda 函数的实时和最新版本,如下所示:

/api/resource -> lambdaFunction:live

/api/latest_resource -> lambdaFunction:$LATEST

这样,流量前挂钩可以/api/latest_resource在客户使用时始终使用/api/resource。到目前为止,我还没有找到一种在 SAM AWS::Serverless::FunctionAWS::Severless::Api中配置它的方法。有没有人有如何做到这一点的例子或想法?