#python #amazon-web-services #amazon-s3 #aws-cdk #aws-codepipeline
Вопрос:
Как использовать уже существующую корзину Amazon S3 для артефактов source_artifact и cloud_assembly_artifact документы здесь мой код ниже
source_artifact = codepipeline.Artifact()
cloud_assembly_artifact = codepipeline.Artifact()
pipeline = pipelines.CdkPipeline(self, 'Pipeline',
cloud_assembly_artifact=cloud_assembly_artifact,
pipeline_name='testPipeline',
source_action = cpactions.CodeCommitSourceAction(
repository=codecommit.Repository.from_repository_name(
self,
id="cicd_pipeline",
repository_name="repo-name"
),
branch='master',
action_name='CodeCommit',
trigger=cpactions.CodeCommitTrigger.POLL,
output=source_artifact,
),
synth_action=pipelines.SimpleSynthAction(
source_artifact=source_artifact,
cloud_assembly_artifact=cloud_assembly_artifact,
install_command='npm install -g aws-cdk amp;amp; pip install -r requirements.txt',
build_command='pytest unittests',
synth_command='cdk synth'))
Ответ №1:
Вы должны создать конвейер codepipeline и прикрепить к нему корзину артефактов.
Вы можете указать кодовую линию в конструкции CdkPipeline после создания конвейера. (Машинописный текст, но должен быть похож на python)
this._artifactsS3Bucket = Bucket.fromBucketArn(this, 'S3ArtifactsBucket', this._props.s3ArtifactBucketARN);
new Pipeline(this, 'Pipeline', {
artifactBucket: this._artifactsS3Bucket,
pipelineName: this._pipelineName,
restartExecutionOnUpdate: true
});
Прикрепите этот кодовый канал к конструкции cdkPipeline
Комментарии:
1.
pipeline = pipelines.CdkPipeline(self, 'Pipeline', cloud_assembly_artifact=cloud_assembly_artifact, code_pipeline = codepipeline.Pipeline(self, 'Pipeline1', artifact_bucket=s3.Bucket.from_bucket_name(self, id="test", bucket_name="bucket-name"), restart_execution_on_update=None), pipeline_name='testPipeline',
2. Я получил ошибку после его использования. ` ‘Файл «/home/sameed/.local/lib/python3.8/site-packages/jsii/_kernel/providers/process.py», строка 326, в отправить вызов JSIIError(отв.ошибка) из JavaScriptError(отв.стек) jsii.ошибки. JSIIError: Не удается установить «Имя конвейера», если существующая кодовая линия задана с помощью «Кодовая линия».
3. вы не можете использовать имя трубопровода в конструкции трубопровода cdk, если вы уже используете ранее созданный трубопровод.
4. @SameedUsmani у тебя получилось? Если видите, пожалуйста, примите этот ответ, чтобы помочь будущим пользователям.
5. cdcp = кодовая линия. Конвейер(сам, ‘codepipeline’, artifact_bucket=ведро, restart_execution_on_update=Нет, имя конвейера=»cdktestpipeline»)