以下是一个使用AWS CodePipeline和Python获取当前正在部署的提交名称的示例代码:
import boto3
def get_current_execution_id(pipeline_name):
codepipeline = boto3.client('codepipeline')
response = codepipeline.list_pipeline_executions(
pipelineName=pipeline_name,
maxResults=1
)
if 'pipelineExecutionSummaries' in response and len(response['pipelineExecutionSummaries']) > 0:
execution_id = response['pipelineExecutionSummaries'][0]['pipelineExecutionId']
return execution_id
return None
def get_current_revision(pipeline_name, execution_id):
codepipeline = boto3.client('codepipeline')
response = codepipeline.get_pipeline_execution(
pipelineName=pipeline_name,
pipelineExecutionId=execution_id
)
if 'pipelineExecution' in response and 'artifactRevisions' in response['pipelineExecution']:
revisions = response['pipelineExecution']['artifactRevisions']
for revision in revisions:
if revision['revisionChangeIdentifier'] == 'AppSpecFileName':
return revision['revisionId']
return None
pipeline_name = 'your-pipeline-name'
execution_id = get_current_execution_id(pipeline_name)
if execution_id:
current_revision = get_current_revision(pipeline_name, execution_id)
print('Current deployment revision:', current_revision)
else:
print('No current deployment')
请确保已安装并配置了AWS SDK for Python(Boto3)。在代码中,首先使用list_pipeline_executions
方法来获取最新的Pipeline执行ID,然后使用get_pipeline_execution
方法获取执行ID对应的Pipeline执行信息。从Pipeline执行信息中获取到artifactRevisions列表,遍历该列表找到revisionChangeIdentifier为'AppSpecFileName'的revision,即为当前正在部署的提交名称。