问题描述
我在AWS中有两个不同的应用程序,由两个无服务器配置文件部署。 在第一个数据库中,我需要从第二个数据库的DynamoDB中读取数据。
serverless.yml n°1:
service:
name: stack1
app: app1
org: globalorg
serverless.yml n°2:
service:
name: stack2
app: app2
org: globalorg
如果我将2个服务放在同一个应用程序中,则可以在iamRoleStatements中用这样的一行访问第二个服务:
Resource:
- ${output::${param:env}::stack2.TableArn}
但是,如果它们不在同一应用程序中,则在尝试部署时出现“找不到服务”错误。 我该如何进行跨应用程序通信? 谢谢
解决方法
由于此堆栈不是您的应用程序的一部分,因此您将需要提供表的实际ARN,因此您无法引用其组件。尝试这样的事情
custom:
table:
tableArn: "<insert-ARN-of-resource-here>"
IamRoleStatements:
Resource: ${self:custom.table.tableArn}