在我的 elixir/phoenix 项目中执行操作后如何在 aws cloudfront 中创建失效

How create invalidation in aws cloudfront after action in my elixir/phoenix project

我在我的 elixir/phoenix 项目中使用 ex_aws 依赖项在我的 aws 帐户中执行一些操作。现在我需要 运行 这样的东西来使缓存无效:

aws cloudfront create-invalidation --distribution-id 1111111111 --paths '/*'

但是 ex_aws 依赖没有云端服务。对此有什么解决方案吗?

Versions:
      {:phoenix, "~> 1.4.0"}
      ...
      {:ex_aws, "~> 2.1.0"},
      {:ex_aws_s3, "~> 2.0.1"},

您不应试图涵盖 AWS 通过纯 Elixir 包装器提供的所有功能。 Erlang(以及 Elixir)都是为了与底层 OS 保持良好的交互水平而构建的,而 System.cmd/3 是第一个 class 公民。所以,

System.cmd(
  "aws",
  ~w|cloudfront create-invalidation --distribution-id 1111111111 --paths '/*'|,
  env: [{"MIX_ENV", "prod"}])