如何使用无服务器AWS进行跨应用程序

问题描述

我在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}