これは何?
AWS CDKワークショップの 高度なトピック (オプション)
にて、AWS CodeCommitを使用して、Pipelineを作成する項目がある。しかし、AWS CodeCommitはサービスの新規提供が終了し、新規の利用ができない状態。(2024年12月現在)
そのため、代わりにGitHubを使用して、Pipelineを構築する方法。
TL;DR
- CodeCommit自体はコードRepositoryのため、GitHubにて代用が可能。GitHubのRepositoryを作成し、コードをpushする
- AWS developer toolsのConnections にて、GitHubとの接続を設定する
- 発行されるARNを利用して、Pipeline設定を行う
AWS CDK workshop自体はこちら
前提
workshopを進めていくと、 高度なトピック (オプション) > CDK Pipelines > リポジトリの作成
にてエラーとなる。
原因として、AWS CodeCommitの新規利用が停止されているため。公式Blog
手順
GitHubとの接続設定
GitHubのRepositoryを作成し、コードをコミット、プッシュする。
AWSコンソールにLoginし、Developer ToolsのSettings>Connectionsに移動。
Create Connections
から接続先: GitHub、任意の名前を入力し、接続を選択。
初めて利用する場合は、GitHubにリダイレクトされ、必要なAppをInstallすることになる。
次に接続設定を行う。Install new App
を選択する。GitHubにリダイレクトし、接続するRepositoryを選択することになる。
接続が終わると、Connectionsが新規作成されている。
GitHubとの接続を利用した、Pipeline設定
workshopのコードにて、CodeCommitを作成するコードを削除し、Pipelineの
from aws_cdk import Stack
from aws_cdk import pipelines as pipelines
from constructs import Construct
class WorkshopPipelineStack(Stack):
def __init__(self, scope: Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
- # Creates a CodeCommit repository called 'WorkshopRepo'
- repo = codecommit.Repository(
- self, "WorkshopRepo", repository_name="WorkshopRepo"
- )
pipeline = pipelines.CodePipeline(
self,
"Pipeline",
synth=pipelines.ShellStep(
"Synth",
- input=pipelines.CodePipelineSource.code_commit(repo, "main"),
+ input=pipelines.CodePipelineSource.connection(
+ "{GitHub user名}/{GitHub Repository名}",
+ "{branch名}",
+ connection_arn="arn:aws:codeconnections:...(connectionsで作成されたARN)",
),
commands=[
"npm install -g aws-cdk",
"pip install -r requirements.txt",
"cdk synth",
],
),
)
チュートリアルどうりに以下のコマンドを実行。
git commit -am "MESSAGE" && git push
cdk deploy
CodePipelineを確認し、作成されていることを確認する。