将第三方资源添加到 Amazon Config - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将第三方资源添加到 Amazon Config

请按照以下步骤向中添加第三方资源 Amazon Config。

步骤 1:设置开发环境

安装和配置 Amazon CloudFormation Amazon CLI。 Amazon CLI 允许您对自定义资源进行建模和注册。有关更多信息,请参阅自定义资源什么是 CloudFormation 命令行界面?

步骤 2:资源建模

创建符合资源类型配置的资源提供程序架构,并验证该架构。

  1. 使用 init 命令创建资源提供程序项目并生成所需的文件。

    $ cfn init Initializing new project
  2. init 命令将启动一个向导,引导您完成项目的设置,包括指定资源名称。在此演练中,指定 MyCustomNamespace::Testing::WordPress

    Enter resource type identifier (Organization::Service::Resource): MyCustomNamespace::Testing::WordPress
  3. 输入资源的包名称。

    Enter a package name (empty for default 'com.custom.testing.wordpress'): com.custom.testing.wordpress Initialized a new project in /workplace/user/custom-testing-wordpress
    注意

    为了确保正确解析任何项目依赖关系,您可以将生成的项目导入支持 Maven 的 IDE 中。

    例如,如果您使用的是 IntelliJ IDEA,则需要执行以下操作:

    • 文件菜单中,选择新建,然后选择现有源中的项目

    • 导航到项目目录。

    • 导入项目对话框中,选择从外部模型导入项目,然后选择 Maven

    • 选择下一步,并接受所有默认设置以完成项目导入。

  4. 打开包含您资源的架构的 mycustomnamespace-testing-wordpress.json 文件。将以下架构复制并粘贴到 mycustomnamespace-testing-wordpress.json 中。

    { "typeName": "MyCustomNamespace::Testing::WordPress", "description": "An example resource that creates a website based on WordPress 5.2.2.", "properties": { "Name": { "description": "A name associated with the website.", "type": "string", "pattern": "^[a-zA-Z0-9]{1,219}\\Z", "minLength": 1, "maxLength": 219 }, "SubnetId": { "description": "A subnet in which to host the website.", "pattern": "^(subnet-[a-f0-9]{13})|(subnet-[a-f0-9]{8})\\Z", "type": "string" }, "InstanceId": { "description": "The ID of the instance that backs the WordPress site.", "type": "string" }, "PublicIp": { "description": "The public IP for the WordPress site.", "type": "string" } }, "required": [ "Name", "SubnetId" ], "primaryIdentifier": [ "/properties/PublicIp", "/properties/InstanceId" ], "readOnlyProperties": [ "/properties/PublicIp", "/properties/InstanceId" ], "additionalProperties": false }
  5. 验证架构。

    $ cfn validate
  6. 更新资源提供程序包中自动生成的文件以查看资源提供程序架构更新。资源提供者项目启动后,会为资源提供者 Amazon CLI 生成支持文件和代码。重新生成代码以查看更新的架构。

    $ cfn generate
    注意

    使用 Maven 时,作为编译过程的一部分,generate 命令会在编译代码之前自动运行。因此,您的更改永远不会与生成的代码不同步。

    请注意, CloudFormation CLI 必须位于 Maven/系统可以找到的位置。有关更多信息,请参阅设置用于开发扩展的环境

有关整个过程的更多信息,请参阅对资源提供程序进行建模以在 Amazon CloudFormation中使用

步骤 3:生成构件

运行以下命令以生成 cfn submit 的构件。

$ mvn package

步骤 4:注册资源

Amazon Config 不需要资源提供者处理程序对您的资源执行配置跟踪。运行以下命令来注册您的资源。

$ cfn submit

有关更多信息,请参阅注册资源提供者以在 Amazon CloudFormation 模板中使用

步骤 5:发布资源配置

确定:: 测试 MyCustomNamespace:: 的配置。WordPress

{ "Name": "MyWordPressSite", "SubnetId": "subnet-abcd0123", "InstanceId": "i-01234567", "PublicIp": "my-wordpress-site.com" }

从中确定架构版本 ID Amazon CloudFormation DescribeType

在中 Amazon Config,您可以查看此资源配置是否被接受。要评估合规性,您可以使用此资源编写 Amazon Config 规则。

(可选)要自动记录配置,请实施定期或基于更改的配置收集器。