我正在将手动创建的 aws lambda 函数导入到 terraform 中。由于我们有很多环境和区域,因此我们使用 terragrunt。 我能够使用模块导入 lambda 函数:
resource "aws_lambda_function" "imported_lambda" {
function_name = "myLambda"
}
然后我用以下命令进行了 terragrunt 导入:
- name: Terragrunt import
id: terragrunt_import
uses: gruntwork-io/terragrunt-action@v2
with:
tf_version: ${{ github.event.inputs.tf_version }}
tg_command: 'import'
tg_version: ${{ github.event.inputs.tg_version }}
tg_dir: target-repo
env:
AWS_SDK_LOAD_CONFIG: 1
我下一步的计划是将 terragrunt 显示为 json 并将该 json 提取到文件中。然后编写一个 python 脚本来读取该 json 文件并创建一个新模块来使用 terraform 管理这个 lambda 函数。
如果我这样做:
terraform show -json > myfile.txt
使用以下步骤:
- name: Terragrunt show
uses: gruntwork-io/terragrunt-action@v2
with:
tf_version: ${{ github.event.inputs.tf_version }}
tg_command: 'show -json > myfile.txt'
tg_version: ${{ github.event.inputs.tg_version }}
tg_dir: target-repo
env:
AWS_SDK_LOAD_CONFIG: 1
它会抛出错误,参数太多。
有没有办法将所有导入的资源(lambda)提取到文本文件中,以便我使用 python 读取它?
我会尝试使用
show -json
作为命令,然后引用后续步骤中操作的 tg_action_output
输出,将其写入文件或按原样使用。
类似:
- name: Terragrunt show
id: terragrunt_show
uses: gruntwork-io/terragrunt-action@v2
with:
tf_version: ${{ github.event.inputs.tf_version }}
tg_command: 'show -json'
tg_version: ${{ github.event.inputs.tg_version }}
tg_dir: target-repo
env:
AWS_SDK_LOAD_CONFIG: 1
- run: 'echo ${{ steps.terragrunt_show.outputs.tg_action_output }}'