Kesalahan penguraian Json saat menjalankan 'aws stepfunctions update-state-machine' melalui Terraform

Saya mengikuti jawabannya di ini pertanyaan, saya mencoba mengaktifkan x-ray dan berhasil, kode yang saya gunakan:

resource "null_resource" "enable_step_function_logging" {
  triggers = {
state_machine_arn = aws_sfn_state_machine.sfn_state_machine.arn
  }
provisioner "local-exec" {
  command = "aws stepfunctions update-state-machine --state-machine-arn ${self.triggers.state_machine_arn} --tracing-configuration enabled=true"
  }
}

Sekarang saya ingin mengaktifkan bagian ' --logging-configuration=xxx' cloudwatch logging, tetapi saya terus mendapatkan kesalahan. Inilah yang saya coba:

resource "null_resource" "enable_step_function_logging" {
  triggers = {
    state_machine_arn = aws_sfn_state_machine.sfn_state_machine.arn
    logs_params       = <<PARAMS
      {
        "level":"ALL",
        "includeExecutionData":true,
        "destinations":[
            {
                "cloudWatchLogsLogGroup":{
                    "logGroupArn":"${aws_cloudwatch_log_group.sfn_cloudwatch_log_group.arn}:*"
                    }
                }
            ]
            }
    PARAMS
  }
  provisioner "local-exec" {
    command     = "aws stepfunctions update-state-machine --state-machine-arn ${self.triggers.state_machine_arn}  --tracing-configuration enabled=true --logging-configuration='${self.triggers.logs_params}'"
  }
}

Lalu ketika saya melamar di Terraform, saya mendapat kesalahan:

Error: Error running command 'aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-east-1:xxxxxxxxx:stateMachine:xxxxxxxxstate-machine  --tracing-configuration enabled=true --logging-configuration='      {
        "level":"ALL",
        "includeExecutionData":true,
        "destinations":[
            {
                "cloudWatchLogsLogGroup":{
                    "logGroupArn":"arn:aws:logs:us-east-1:xxx:log-group:/aws/vendedlogs/states/xxxxxxx-Logs:*"
                    }
                }
            ]
            }
'': exit status 252. Output:
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

Unknown options: {

Ini mengeluhkan format perintah aws yang tidak valid, saya tidak dapat menemukan contoh apa pun secara online, adakah yang bisa membantu?


person Cecilia    schedule 28.01.2021    source sumber
comment
Akan sangat membantu jika melihat terraform dan output lainnya sebagai teks.   -  person thekbb    schedule 28.01.2021
comment
Hai @thekbb Saya memperbarui pertanyaan saya, saya berhasil membuat 'pengaktifan x-ray' berfungsi, tetapi ada masalah pada bagian 'pengaktifan logging', sepertinya ada keluhan tentang format json?   -  person Cecilia    schedule 28.01.2021


Jawaban (1)


Karena belum pernah menggunakan terraform dengan windows, saya agak tidak jelas, tapi saya curiga local-exec menggunakan cmd daripada bash untuk menjalankan aws-cli. Mungkin ada perbedaan dalam cara melarikan diri dan menafsirkan sesuatu? Coba beri tahu terraform untuk menggunakan bash:

  provisioner "local-exec" {
    command     = "aws stepfunctions update-state-machine --state-machine-arn ${self.triggers.state_machine_arn}  --tracing-configuration enabled=true --logging-configuration='${self.triggers.logs_params}'"
    interpreter = ["bash", "-c"]
  }
person thekbb    schedule 28.01.2021
comment
Sudahkah Anda mengujinya? Itu memberi saya kesalahan 'Argumen bernama juru bahasa tidak diharapkan di sini.' - person Cecilia; 28.01.2021
comment
Tahukah Anda format json apa yang harus saya teruskan ke '--logging-configuration', saya yakin ini masalah json - person Cecilia; 28.01.2021
comment
Aneh.. Saya punya spasi yang aneh sebagai contoh. Versi terraform apa yang Anda gunakan? juru bahasa benar di dokumen: terraform.io/docs/ bahasa/sumber daya/penyedia/ - person thekbb; 28.01.2021
comment
Saya menggunakan terraform v0.13.4 - person Cecilia; 28.01.2021
comment
Saya tidak bisa menggunakan bash itu akan memberi saya kesalahan seperti tidak dapat menemukan bash, itu menggunakan CMD - person Cecilia; 01.02.2021