💨

セルフホストなGitLabとのCode:Connectiosnを利用したCDK用のカスタムリソースを作成

2024/11/01に公開

必要に駆られ?たので、Code::Connectionsを利用したCDK用のカスタムリソースを作成することにしました。
現状、AWSの公式マニュアルだったり、CloudFormationでは未対応なようで、、、だけどAPIは全てじゃないけど存在するみたいでした(いずれ対応するかと)、それらを駆使してカスタムリソースをつくることにしました。

※カスタムリソースが不要になる日を待ち侘びてます。。。

APIは全部じゃないけど公開されている。

https://docs.aws.amazon.com/ja_jp/codeconnections/latest/APIReference/API_CreateHost.html

https://docs.aws.amazon.com/ja_jp/codeconnections/latest/APIReference/API_CreateConnection.html

Note:にあるようにUpdate PengingaはCLIとかでは更新できない(WEBコンソールを使う必要がある)
https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html

そこら辺を踏まえた上で、Hostの作成とConnectionの作成までをCDKコンストラクトする!
というのを作成して公開しました。
https://constructs.dev/packages/@gammarers/aws-codeconnections-host-custom-resource

import { CodeConnectionsHostCustomResource, CodeConnectionsHostProviderType } from '@gammarers/aws-codeconnections-host-custom-resource';

const codeConnectionsHostCustomResource = new CodeConnectionsHostCustomResource(this, 'CodeConnectionsHost', {
  name: 'gitlab.example.com', // required, connection host name (Minimum length of 1. Maximum length of 64.)
  providerEndpoint: 'https://gitlab.example.com', // required, your provider endpoint (Minimum length of 1. Maximum length of 512.)
  providerType: CodeConnectionsHostProviderType.GIT_LAB_SELF_MANAGED,
});

// get host arn
const hostArn = gitLabSelfManagedConnectionHostCustomResource.findHostArn();

new codeconnections.CfnConnection(this, 'Connection', {
  connectionName: 'example-gitlab-connection',
  hostArn,
});

Discussion