

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 存取專案詳細資訊的內容物件
<a name="context-objects-lm"></a>

身為藍圖作者，您可以在合成期間從藍圖專案存取內容，以取得空間和專案名稱，或專案來源儲存庫中現有檔案等資訊。您也可以取得詳細資訊，例如藍圖產生的重新合成階段。例如，您可以存取內容，以了解您是否正在重新合成以產生原始套件或提議的套件。然後，可以使用現有的程式碼內容來轉換儲存庫中的程式碼。例如，您可以撰寫自己的重新合成策略來設定特定的程式碼標準。您可以將策略新增至小型藍圖的 `blueprint.ts` 檔案，也可以為策略建立個別的檔案。

下列範例示範如何在專案內容中尋找檔案、設定工作流程建置器，以及為特定檔案設定藍圖提供的重新合成策略：

```
const contextFiles = this.context.project.src.findAll({
      fileGlobs: ['**/package.json'],
    });

    // const workflows = this.context.project.src.findAll({
    //   fileGlobs: ['**/.codecatalyst/**.yaml'],
    // });

    const security = new WorkflowBuilder(this, {
      Name: 'security-workflow',
    });
    new Workflow(this, repo, security.getDefinition());
    repo.setResynthStrategies([
      {
        identifier: 'force-security',
        globs: ['**/.codecatalyst/security-workflow.yaml'],
        strategy: MergeStrategies.alwaysUpdate,
      },
    ]);


    for (const contextFile of contextFiles) {
      const packageObject = JSON.parse(contextFile.buffer.toString());
      new SourceFile(internalRepo, contextFile.path, JSON.stringify({
        ...packageObject,
      }, null, 2));
    }
  }
```