Amazon web services 如何在Nifi中使用Aws临时凭据

Amazon web services 如何在Nifi中使用Aws临时凭据,amazon-web-services,access-token,apache-nifi,Amazon Web Services,Access Token,Apache Nifi,我必须在nifi进程中使用aws临时凭证AccessKey、SecretKey和令牌来访问S3对象。AccessKey、SecretKey和Token将由Api调用提供。如何在nifi ListS3对象等中使用这些临时凭证 我发现的一个选项是使用 AWSCredentialsProviderControllerService自此 我可以基于API调用更新控制器服务的值吗 在这个场景中我还可以使用其他选项吗 谢谢! Ani是的,我们可以利用AWSCredentialsProvider控制器服务和

我必须在nifi进程中使用aws临时凭证AccessKey、SecretKey和令牌来访问S3对象。AccessKey、SecretKey和Token将由Api调用提供。如何在nifi ListS3对象等中使用这些临时凭证

我发现的一个选项是使用 AWSCredentialsProviderControllerService自此 我可以基于API调用更新控制器服务的值吗

在这个场景中我还可以使用其他选项吗

谢谢!
Ani

是的,我们可以利用
AWSCredentialsProvider
控制器服务和NiFi REST API来构建这个,尽管它可能有点复杂。尽管如此,让我们在这里画出草图

无论您在NiFi上执行什么操作—更新处理器/控制器服务配置、停止/启动服务/处理器,都是在后端进行API调用。NiFi框架在幕后进行调用。因为我们也有HTTP处理器,比如
InvokeHTTP
,我们可以构建这个东西。我能想到一个类似以下的例子:

  • 创建AWSCredentialsProvider controller服务,并将配置留空,这将有效地使组件处于无效状态。记下它的唯一ID(UUID)。让我们称之为
    cpid
    。我们以后用
  • 使用包含
    ListS3->
    的逻辑创建流程。使用我们在步骤1中创建的AWSCredentialsProvider配置ListS3处理器
  • 记下此
    列表3
    处理器的组件ID。我们称之为
    s3id
  • 使用
    InvokeHTTP
    创建另一个流,并将其配置到提供临时AWS凭据的服务端点。使用中的凭据,并使用InvokeHTTP再次调用具有
    PUT/controller services/{cp id}
    端点的NiFi服务器,以更新属性
  • 再次调用以使用
    PUT/controller services/{cp id}/run status
    更新控制器服务的运行状态。这将启用控制器服务,这意味着您现在可以启动ListS3处理器,可以使用对NiFi服务器的HTTP调用再次启动该处理器:
    PUT/processors/{s3id}/run status
  • 一些有用的链接:


    感谢您提供/验证这方面的方法。