如何将资源导入到无服务器托管项目?

Zha*_* Yi 5 amazon-web-services terraform serverless

我正在使用serverless部署 AWS 资源。有时我会收到关于现有资源如何存在的错误,因此部署失败。这可能是由于团队中的另一位开发人员部署了名称冲突的资源。我想知道我应该如何处理这个serverless

terraform以前使用过,它支持import用于将现有资源导入我的项目的命令。有没有类似的serverless?如果没有,解决此问题的最佳做法是什么?我不想手动删除 AWS 上的资源。

Hub*_*ber -2

TL;DR:无服务器框架不支持导入 CloudFormation 资源。但有一些方法可以解决所讨论的问题。

无服务器允许您使用现有 CloudFormation 资源的。先决条件是您的同事或至少 CloudFormation 堆栈将您依赖的资源描述为“输出”

// in your colleagues serverless.yaml to export a VPC
resources:
   // ...
   Outputs:
     StackVPC:
       Description: The ID of the VPC
       Value: !Ref MyVPC
       Export:
         Name: !Sub "${AWS::StackName}-VPCID"
Run Code Online (Sandbox Code Playgroud)

在您的serverless.yaml中,您可以导入/引用现有的 VPC。有几种方法可以将资源导入堆栈。

var1: 'Fn::ImportValue': '${refSackName}-VPCID'
var2: ${cf:${refSackName}-VPCID}
Run Code Online (Sandbox Code Playgroud)

对于我来说,我主要使用Fn::ImportValue

这里列出了这种方法的优点和缺点https://dev.to/lambdasharp/dynamic-bindings-for-cloudformation-stacks-15l6